Я видел несколько сообщений в блоге и испытал для себя, что Mercurial не сохраняет разрешения на файлы, перетаскиваемые из одного репо в другое. Кто-нибудь знает о расширении Mercurial, которое сохранит разрешения? Я предполагаю, что это невозможно сделать с помощью крючка, потому что то, что крючок знает о разрешениях при исходном репо?
Запрошенная разработка:
-
Если единственным изменением в файле является изменение разрешений (например,
chmod o+r filename
), попытки передать файл сбой сообщением о том, что файл не изменился. -
Если я фиксирую файл с разрешениями 600 (rw -------), затем клонирует репо, тот же файл в клоне имеет разрешения 664 (rw-rw-r -):
: [email protected] 6522 ; hg clone one two updating working directory 1 files updated, 0 files merged, 0 files removed, 0 files unresolved : [email protected] 6523 ; ls -l one two one: total 4 -rw------- 1 nr nr 8 Aug 18 21:50 foo two: total 4 -rw-rw-r-- 1 nr nr 8 Aug 18 21:51 foo
Эти примеры показывают, что hg clone
не сохраняет разрешения, но hg push
также не сохраняет их.
В моем приложении одно репо находится на общедоступном пути, и важно, чтобы
-
Несколько пользователей имеют право изменять репо
-
Файлы в публичном репо становятся доступными для чтения только тогда, когда они явно читаются.