2011-12-29 7 views
0

私はWindowsでCollabNet Subversionを使用しています。私はどのようにしてSVNへの変更をコミットする前に、ユーザーが自分のコメントを入力することができるかについて調べています。検索結果は、Linux環境ではより重視され、Windows環境では非常に少ないリソースです。幸いなことに、私はこのWindowsの対象となるlinkを見つけました。WindowsのSubversionにコメントを追加するには?

残念ながら、コードは提供されていますが、TortoiseSVNとEclipseSVNではまだ動作しませんでした。提供されたコメントによると、pre-commit.tmplはpre-commit.batに名前を変更する必要がありますが、まだ動作していません。

答えて

3

このスクリプトを\ 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サーバーに追加する必要があります。ここで

+0

はい、私はフックフォルダ内のファイルを持っています。私はpre-commit.batファイルにあなたのコード場所を持っていますが、なぜ私はまだファイルをコミットすることができますか? Subversionが自動的に起動するファイルはわかりますか? – huahsin68

+0

これをpre-commit.batに配置した後、「Commit stopped」メッセージが表示されましたか? – pmod

+0

はい。私はCommitが止まったのを見た。あなたが提供したリンクに従って、私はsubversionとgrep.exeを指すパスを設定しました。 "svnlook.exeログ-t"%2 ""%1 "| grep.exe" [a-zA-Z0-9] "nul ||終了1"スクリプトでも同様です。私はまだ何もコメントしていないのに自分のコードをチェックインすることができます。 – huahsin68

関連する問題