2010-06-29 16 views
13

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

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

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

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

Благодаря

ответ

5

Это выполнимо с центральной репо с доступом (Push/Pull), управляемого gitolite.
См. its features.

Если объединить это с подмодулей (которых вы в курсе), вы бы только успевай за репо или на доступ к ветке и по-прежнему совершать как project1 и PROJECT2 (с двумя фиксаций в случае subrepo: см this question)

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

file/dire Ограничения на основе ИМЯ

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

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

+0

Да, видел это, но мне кажется, что разрешения здесь касаются блокировки нажатий, а не чтения на клонирование. Я почти не вижу, как клонирующий материал будет сочетаться с таким отказом от чтения. – Wam

+0

@Wam: для чтения у вас есть * использовать подмодульный подход: gitolite предотвратит клонирование и вытащит из репо с правильными ACL (и подмодуль - это собственный репозиторий Git). Другими словами, он блокирует тягу на уровне репо или филиала. – VonC

+0

да, но тогда я теряю функциональность «single commit/single push/single pull» – Wam