私の質問を読んでくれてありがとう:)
私の目標は、コミットがSVN-Serverに発行される前に、このメッセージを変更することです:
私はすでに開始フックと事前コミットフック (C#) を持っています。何かをコミットしようとすると、両方が呼び出されます。また、動作中の SharpSvn ライブラリもあります。しかし、残念ながら私は前進していません。このメッセージをどのように記入すればよいかわかりません。
それは可能ですか?私はすべての小さなヒントに満足しています:)
私の質問を読んでくれてありがとう:)
私の目標は、コミットがSVN-Serverに発行される前に、このメッセージを変更することです:
私はすでに開始フックと事前コミットフック (C#) を持っています。何かをコミットしようとすると、両方が呼び出されます。また、動作中の SharpSvn ライブラリもあります。しかし、残念ながら私は前進していません。このメッセージをどのように記入すればよいかわかりません。
それは可能ですか?私はすべての小さなヒントに満足しています:)
コミット フックは、失敗した場合を除き、クライアントと通信しません。次に、標準エラーに送信されたものをすべてユーザーに送信します。フック スクリプトは、コミットのどの側面も変更できません。(これは完全に正しいわけではありません: コミット後のフックは、コミット メッセージ、作成者、およびコミット時刻を変更する可能性がありますが、通常、これは非常に悪い考えです。)
できることは、コミット メッセージが正しい形式であることを確認し、そうでない場合はコミットを失敗させることです。正しい形式でコミットを再送信するのはユーザー次第です。
組み込みの TortoiseSVN クライアント フックを使用することはお勧めしません。これらはマシンごとに行われるため、ユーザーはオプトアウトでき、ユーザーが別のクライアント (VisualStudio AnkhSVN プラグインなど) を使用している場合は機能しません。
何をしようとしているのか、その理由については言及していません。
Perl で書かれた私のフックを使用することは大歓迎です。キッチン シンクフックはいくつかのタスクを実行します。そのうちの 1 つは、コミット メッセージが正しい形式であることを確認します。たとえば、欠陥追跡 ID が含まれていることを要求したり、少なくとも ...たとえば... 10 文字の長さを要求したりできます。
ただし、ユーザーのコミット メッセージが基準に一致しない場合、フックはコミットに失敗し、ユーザーは再試行する必要があります。秘訣は、適切なエラー メッセージを表示することです。これにより、ユーザーは自分が何を間違えたのかを知ることができます。信じてください。1 回か 2 回試してみると、ユーザーは適切なコミット メッセージが必要なコツをつかむことができます。
ただし、少し異なるルートを試してみることをお勧めします。Jenkins などの継続的インテグレーション システムを使用します。
私が気づいたことは、Jenkins でプロジェクトを起動して実行するとすぐに、コミット メッセージが自動的に改善されることです。各 Subversion コミットはビルドに変換されます。ただし、Jenkins は、以前のビルドと現在のビルドの間のすべての変更とコミット メッセージも表示します。
これは主に可視性に関係しています。Jenkins の前は、コミット メッセージはかなり隠されています。あなたがやった場合にのみそれらを見ることができsvn log
、定期的にそれを行う人はほとんどいません。ただし、Jenkins では、ビルドとコミットのたびにすぐに表示されます。ウェブページを数回クリックするだけで、履歴、誰が変更したか、何を変更したかを確認できます。
それはあなたが望むものを処理するための最良の方法かもしれません.
さて、私は答えを見つけました:)
フックスクリプトで試したのは間違いでした。より良い解決策は、カスタム課題トラッカー プラグインを構築することです。
http://tortoisesvn.googlecode.com/svn/trunk/contrib/issue-tracker-plugins/issue-tracker-plugins.txt
これにより、DB から自分の問題を読み取ることができ、開発者に必要なものを選択させ、ログ メッセージ ウィンドウに表示させることができます。