問題は TortoiseSVN の問題ではなく、サーバーの問題です。リポジトリはどこに保存されますか? どのサーバーを使用していますか? またはを使用していますsvnserve
かhttpd
?
とにかくあなたのコミットは起こると思います。いくつかの可能性があります:
あなたのフックは実行されていますが、何もしていません。ゼロの終了ステータスで終了する限り、Subversion はすべてがハンキーであると考えます。pre-commit.bat
という行のみを含むSubversion プログラムを試してくださいexit 2
。まだ何かをコミットできる場合、フックはまったく機能していません。
あなたのフックは実行されていません。Subversion はディレクトリ内のプログラムpre-commit
を実行します。実行可能ファイルを見つけるためにファイルに追加されるサフィックスを含む、Windows でhooks
呼び出される環境変数があります。PATHEXT
通常、 を試し*.com
、*.exe
次に を試します*.bat
。そのディレクトリにpre-commit.exe
orがある場合、あなたは実行されません。Subversion サーバーを実行しているユーザーの値を確認し、正しく設定されていることを確認してください。pre-commit.cmd
hooks
pre-commit.bat
PATHEXT
問題の 1 つは、Subversion のフックがSTDOUTを食べ、フックが失敗した場合にのみSTDERRを表示することです。これにより、フックはユーザーにとってかなり無意味になり、実行中に出力を印刷することに依存している場合、フックが何もしていないという印象を受ける可能性があります。
STDOUT ではなく STDERR に出力します。フックを強制的に失敗させる方法があるため、必要に応じて STDERR を確認できます。
また、Windowsのバッチ スクリプトでフックを記述することもお勧めしません。この種の仕事をするのは、単に切り取られていません。Python または Perl を使用します。または、本当に PC 指向で、サーバーに Python や Perl をインストールしたくない場合は、非常に強力ですが、Windows 用の十分に活用されていないプログラミング言語である PowerShell を使用してください。