SVN authz, аутентификация на основе пути в магистрали/ветке

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

[/]<br>
* = r

[/trunk/projA]<br>
toto = rw<br>
tata =

[/trunk/projB]<br>
toto = <br>
tata = rw

[/branch1/projA]<br>
toto = rw<br>
tata =

[/branch1/projB]<br>
toto = <br>
tata = rw

Поскольку у меня много проектов и веток, эту конфигурацию становится трудно поддерживать.


person David    schedule 31.03.2011    source источник


Ответы (1)


Нет. Самым простым решением было бы использовать svnperms.py скрипт для обработки этого. Проблема с svnperms.py заключается в том, что вы не можете справиться с ситуацией, чтобы не видеть папку (toto = ). В противном случае вам придется обрабатывать его с помощью копирования и вставки.

Если вы измените организацию на:

   +-- project1
        +--- trunk
        +--- tags
        +--- branches
   +-- project2
        +--- trunk
        +--- tags
        +--- branches

Но не знаю, вариант ли это.

person khmarbaise    schedule 31.03.2011
comment
Спасибо за Ваш ответ. Организация, которую вы предлагаете, на самом деле является тем, что вы используете сейчас, но ее также сложно поддерживать. Когда мы создаем теги, нам нужно добавить все новостные теги в конфигурацию. Вот почему я подумал, что перемещение ствола/ветви перед проектами поможет. Знаете ли вы, проще ли такая конфигурация доступа пользователей с GIT? - person David; 31.03.2011
comment
Может я неправильно понимаю, но зачем вам добавлять все новостные теги в конфигурацию? Подобная конфигурация доступа пользователей проста и невозможна в Git, потому что у git нет механизма доступа пользователей на уровне тегов/веток. В Git для каждого проекта нужен отдельный репозиторий. - person khmarbaise; 31.03.2011
comment
Когда я создаю новую ветку (выпуск новой версии) в своих проектах (projA и projB, поскольку они имеют перекрестные зависимости), мой сервер: /branch-v1/projA, /branch-v1/projB, /branch-v2/projA , /ветка-v2/projB. Для каждого нового выпуска мне нужно добавлять новые строки в файл конфигурации, чтобы сохранить ограничение доступа. Может быть, я неправильно использую способ работы ветки / магистрали? - person David; 31.03.2011
comment
Вы можете использовать svn:externals для определения таких зависимостей, или, может быть, лучше использовать инструмент сборки, который обрабатывает такие вещи. - person khmarbaise; 31.03.2011
comment
Большое спасибо, я никогда не думал об использовании svn:externals. Выглядит мощно, но как-то обидчиво. Я сделаю несколько попыток. Я также пробовал piston.rubyforge, но сайт не работает. - person David; 01.04.2011
comment
Итак, вы работаете с ruby/r или можете использовать rvm для создания драгоценных камней и обработки зависимостей. Кроме того, вы можете взглянуть на капистраное (развертывание). - person khmarbaise; 01.04.2011