2008-09-12 19 views
0

私はTortoiseSVNをコミットプロセスの一部として自動化したいと思います。 特に、コミットダイアログのログエントリを動的に作成したいと思います。TortoiseSVNでカスタムコミットフックを使用してカスタムログエントリを設定するにはどうすればよいですか?

私は、コマンドラインから、またはフォルダを右クリックしてsvncommitを選択することでコミットダイアログを起動できることを知っています。

私はログエントリを設定するために開始コミットフックを使用したいと思います。 MESSAGEFILE変数にエントリファイル名を渡すことでこれがうまくいくと思っていましたが、フックスクリプトを追加すると、この変数は表示されません(右クリックしてsvncommitを選択するとフックが正常に起動しました)。

コマンドラインを使用しようとすると、私は/ logmsgfileパラメータを使用しますが、効果がないようです。

私はtortoisesvn 1.5.3を使用しています。

答えて

2

問題によって引き起こされたAPIの誤解のようでした。

ソリューション:
1)右クリックメニューの設定領域でフックGUIを使用してTortoiseSVNに開始コミットフックスクリプトを追加しました。

2)スクリプトは、情報の3枚を受け取る:PATH messagefileをCWD
詳細については以下を参照してくださいManual
これらはスクリプトにコマンドラインarguementsとして渡されます - 私は、彼らは一時的な環境変数として設定されたと思っていたいくつかの理由。

私のスクリプトは、2番目の引数で指定されたファイルを開き、カスタムテキストを追加します。

コミットダイアログが表示されたら、カスタムテキストが表示されます。

3)tortoisesvnがスクリプトからコミットダイアログに直接起動された場合のベストショット:
[tortoiseproc/command:コミット/パス:。/closeonend:1]
フックは引き続き呼び出されます。

1

スタティックテンプレートが必要な場合は、tsvn:logtemplateプロパティを設定します。

動的生成の場合、/ logmsgfileパラメータは機能しますが、フルパスが必要なようです。次のようなバッチファイルが役立ちます。

GenerateLogMsg.exe > tmp.msg 
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:. /logmsgfile:"C:\Documents and Settings\User\My Documents\Visual Studio Projects\Project\tmp.msg" 
+0

/logmsgfileに必要なフルパスは、その特定のコマンドに問題があったようです。ありがとう! – morechilli

関連する問題