1

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に書き換えることを考えても...しかし、これには数時間かかり、さらにテストが必要になります...

4

0 に答える 0