このスクリプトを\ hooksフォルダに入れましたか?はいの場合、上記のスクリプトに環境設定が不十分であると思われます(フックはきれいな環境で実行されるため)。 SVN bookから:
セキュリティ上の理由から、Subversionリポジトリは、(Windowsで、または%PATH%)が空の環境-、何の環境変数は、すべての でもない$ PATHに設定されていないされてフックプログラム を実行します。このため、多くの 管理者は、フックプログラムが手で細かく実行されたときにはうんざりしますが、 がSubversionで実行されても動作しません。フックプログラムには必ず に必要な環境変数を明示的に設定してください。また、プログラムへの絶対パスは を使用してください。
それがすべてでサーバによって呼び出されることを確認するだけで、最初にエコーを実行してみてください:
rem Add path to Subversion executable
set path=%path%;c:\Program Files\Subversion\bin
:それは働いている場合は
@echo off
setlocal
echo Commit stopped 1>&2
exit 1
、そのバッチの上にこれを追加してみてください
私はまた、関連記事here(pre-commitフックの例も含まれています)を発見しました。
更新
あなたもここで同じ問題の解決を試みることがあります。SVN Pre Commit Hooks
をアップデート2
私はあなたがサーバー側ものとclient side hooksをめちゃくちゃにされていると思います。最初はSVNクライアントによって呼び出されるので、渡されたパラメータと結果の解釈方法は完全にクライアント固有です。私は、TortoiseSVNフックはコミットを拒否しようとしていない(つまり、errorlevelはチェックされていない)が、他のシステムとの統合に使用できると思う。例hereも参照してください。実際にコミットを拒否するには、これらのフックをSVNサーバーに追加する必要があります。ここで
はい、私はフックフォルダ内のファイルを持っています。私はpre-commit.batファイルにあなたのコード場所を持っていますが、なぜ私はまだファイルをコミットすることができますか? Subversionが自動的に起動するファイルはわかりますか? – huahsin68
これをpre-commit.batに配置した後、「Commit stopped」メッセージが表示されましたか? – pmod
はい。私はCommitが止まったのを見た。あなたが提供したリンクに従って、私はsubversionとgrep.exeを指すパスを設定しました。 "svnlook.exeログ-t"%2 ""%1 "| grep.exe" [a-zA-Z0-9] "nul ||終了1"スクリプトでも同様です。私はまだ何もコメントしていないのに自分のコードをチェックインすることができます。 – huahsin68