WindowsではVisualSVNServer2.5.6を使用しています(重要です!)。
ほとんどのSVNリポジトリには標準構造があります。
/trunk
/branches
/tags
私たちが欲しい:
- 人々が新しいタグを作成できるようにする
- 既存のタグを変更することを禁止する
聞かないでください...時々彼らは実際に既存のタグへの変更をコミットしようとします))
私は本当に素晴らしいpre-commitフックを見つけました- 標準のフックスクリプトからの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
authzモジュールでの読み取りと書き込みだけでなく、追加、削除、および変更アクション(SVNのA、D、およびMタイプの変更に沿って)を制御できるsvnperms.pyのアプローチが本当に気に入っています。
さらに、パスを指定するために使用される正規表現により、無制限のパワーを提供します。
Windowsで動作する同様のSVNフックスクリプトはありますか?
残念ながらPythonはわかりませんが、Perlの経験は豊富です。したがって、svnperms.pyをPerlに書き換えることを考えても...しかし、これには数時間かかり、さらにテストが必要になります...