Разрешения для каждого каталога на git

Мы рассматриваем возможность переключения нашего VCS на git или subversion. Я бы предпочел переключиться на git, но subversion имеет приятную функцию, которую я не вижу в git: для управления доступом к каталогам.

В настоящее время у нас есть репозитории project1, project2 в cvs с разными разрешениями. Мы хотели бы иметь один репозиторий с двумя каталогами project1 и project2 с разными разрешениями. Возможно ли это с git, как и с svn?

Я знаю о подмодулях, которые, вероятно, могут это достичь, но целью для нас является возможность сделать одно фиксированное с изменениями в project1 и project2.

У нас главным образом проблемы с IP-адресами, и мы хотим быть уверенными, что некоторые люди не могут читать (а не просто нажимать) некоторые каталоги. Итак, git для вызова или мне придется использовать git -svn?

Спасибо

Ответы

Ответ 1

Это выполнимо с центральным репо с доступом (push/pull), которым управляет gitolite.
Смотрите его функции.

Если вы комбинируете это с субмодулями (о которых вы знаете), вы будете управлять только для каждого репо или для доступа к каждой ветки и по-прежнему выполнять как project1, так и project2 (с двумя коммитами в случае подрежима: см. этот вопрос)

Если вы настаиваете на работе с одним репо (даже если вам нужно установить данные, которые могут развиваться с их собственным жизненным циклом, что должно сделать их хорошими кандидатами для модулей), то функции gitolite включают:

файл /dir Ограничения на основе NAME

В дополнение к ограничениям на основе имен ветвей, гитолит также позволяет вам ограничить, какие файлы или каталоги могут быть задействованы в нажатых изменениях

dpk упоминает в комментариях, что эта последняя функция (ограничение имени файла /dir ) подробно описана в conf/example.conf файл Gitolite.