2

コミット プロセスの一部として TortoiseSVN を自動化したいと考えています。具体的には、コミット ダイアログのログ エントリを動的に作成したいと考えています。

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

start commit フックを使用してログ エントリを設定したいと考えています。MESSAGEFILE変数にエントリファイル名を渡すことでこれが機能すると思っていましたが、フックスクリプトを追加すると、この変数が表示されません(右クリックしてsvncommitを選択すると、フックが正常に起動しました)。

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

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

4

2 に答える 2

2

問題が発生したのは、API に対する私自身の誤解だったようです。

解決策:
1) 右クリック メニューの設定領域にあるフック GUI を使用して、開始コミット フック スクリプトを TortoiseSVN に追加しました。

2) スクリプトは 3 つの情報を受け取ります: PATH MESSAGEFILE CWD
詳細は次を参照してください:マニュアル
これらはコマンド ライン引数としてスクリプトに渡されます - 何らかの理由で一時的な環境変数として設定されていると思いました。

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

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

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

于 2008-09-12T15:40:52.820 に答える
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"
于 2008-09-12T15:50:24.980 に答える