Как контролировать изменения тегов на сервере SVN в Windows
Мы используем VisualSVN Server 2.5.6 в Windows (важно!).
Большинство наших SVN-репозиториев имеют стандартную структуру:
/trunk
/branches
/tags
Мы хотим:
- позволяют людям создавать новые теги
- запретить им изменять существующие теги
Не спрашивайте... иногда они действительно пытаются зафиксировать изменение в существующем теге))
Я нашел действительно хороший хук предварительной фиксации - svnperms.py из стандартных скриптов хуков
Пример 2 из файла конфигурации, вероятно, то, что мне нужно:
[example2]
trunk/.* = *(add,remove,update)
tags/[^/]+/ = *(add)
branches/[^/]+/.* = *(add,remove,update)
Действительно мощный и лаконичный!
Но он не работает должным образом в Windows - выдает сообщение об ошибке:
D:\Repositories\Ivan_dev\hooks>svnperms.py -r D:\Repositories\Ivan_dev -s default_permissions_configuration -R 8
svnlook author D:\Repositories\Ivan_dev -r 8
'{' is not recognized as an internal or external command,
operable program or batch file.error: command failed: svnlook author D:\Repositories\Ivan_dev -r 8
'{' is not recognized as an internal or external command,
operable program or batch file.
Насколько я понял, это терпит неудачу из-за способа, которым он разработан в Python:
Командный модуль, который svnperms.py использует для запуска базовых команд svnlook, работает только в Unix.
отсюда: http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=72052
Мне очень нравится подход svnperms.py, который позволяет вам управлять действиями добавления, удаления и изменения (в соответствии с типами изменений в SVN A, D и M) вместо простого чтения и записи в модуле authz.
Плюс это дает неограниченные возможности из-за регулярных выражений, используемых для указания пути.
Существуют ли похожие скрипты SVN-хуков, которые работают в Windows?
К сожалению, я не знаю Python, но довольно опытен в Perl. Так что даже подумав о переписывании svnperms.py в Perl... но это займет несколько часов плюс тестирование...