2010-05-24 4 views
4

Я пытаюсь настроить репо SVN для целой группы пользователей. Различные пользователи должны иметь разные уровни доступа к областям репозитория. Тривиальный пример может заключаться в том, что инженеры frontend нуждаются в доступе к «представлению» и «контроллерам», но не к «модели», в то время как разработчикам backend требуется доступ к «контроллерам» и «модели», но не к «представлению».Мелкие разрешения на репозиторий SVN

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

Существует ли мелкий способ управления доступом пользователей к репозиторию?

Спасибо!

+0

Я думаю, что это принадлежит Суперпользователю. – Warty

+2

См. Также http://stackoverflow.com/questions/81361/how-to-setup-access-control-in-svn/83418#83418 – VonC

ответ

4

Вы можете использовать авторизацию на основе пути. Вы определяете разрешения чтения или записи для каждого пути в файле; разрешения наследуются.

Например, с помощью групп (@groupname):

# Everyone get read access 
[/prj1/trunk] 
@backend = R 
@frontend = R 

#Specific rights 
[/prj1/trunk/model] 
@backend = RW 

[/prj1/trunk/controllers] 
@backend = RW 
@frontend = RW 

[/prj1/trunk/view] 
@frontend = RW 

Вы ссылку на этот файл из svnserve.conf или httpd.conf. (Полное описание см. В предыдущем ответе.)

2

Да, вы можете использовать path-based authorization в SVN, но я бы очень обескураживал.

Во-первых, это сильно влияет на производительность вашего репозитория при включении. Во-вторых, только потому, что разработчикам переднего плана нужен только «доступ» к представлениям и контроллерам, что происходит в функции, над которой они работают, требует изменений в модели? Либо они сами вносят изменения и фиксируют их своими обновлениями, либо просят «модельного» разработчика сделать это, и для организации всего требуется дополнительный день.

Пока у вас есть обзоры кода, на самом деле нет смысла в дополнительных обручах.

Даже если у вас нет обзоров кодов, история фиксации сможет определить, кто внес изменения в какую часть кода. Если вы действительно не доверяете вам, разработчикам интерфейсов не наступать на чужие пальцы без какой-либо модерации, то вы действительно им доверяете делать что-либо вообще?

+0

«Большой удар»? хм, не так уж и большой. – bahrep

Смежные вопросы