空のログ メッセージをチェックする SVN (つまり、Windows の .bat ファイル) で pre-commit フックを作成したいと考えています。さらに、このチェックを SVN の特定のフォルダーに対してのみ対象にしたいと考えています。
誰でも同じことを手伝ってもらえますか?
よろしく、 ルヒー・ジャイスワル
空のログ メッセージをチェックする SVN (つまり、Windows の .bat ファイル) で pre-commit フックを作成したいと考えています。さらに、このチェックを SVN の特定のフォルダーに対してのみ対象にしたいと考えています。
誰でも同じことを手伝ってもらえますか?
よろしく、 ルヒー・ジャイスワル
Windows で TortoiseSVN を使用している場合は、svn プロパティを使用することをお勧めします。
tsvn:logminsize は、コミットのログ メッセージの最小の長さを設定します。ここで指定したよりも短いメッセージを入力すると、コミットは無効になります。この機能は、コミットごとに適切な説明メッセージを提供することを思い出させるのに非常に役立ちます。このプロパティが設定されていない場合、または値がゼロの場合、空のログ メッセージが許可されます。
また、バグ トラッカーの統合などの他の機能も確認してください。
フックを使用してサーバー側でこれを本当にやりたい場合は、これを試すことができます。その場合、質問は重複しています:)
この回答Windows Pre-commit hook for comment length Subversionsvnlook dir-changed
に加えて、現在のコミットの特定のディレクトリを確認するために使用できます。
したがって、次のようなものを追加できます
svnlook dir-changed %REPOS% -t %TXN% | findstr your_path > nul
if %errorlevel% equ 0 exit 0
svnlook log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
TortoiseSVNに問題がなければ、そこにクライアント側のフックを入力できます。
TortoiseSVN は以下のパラメータを pre-commit フックに渡します:
PATH DEPTH MESSAGEFILE CWD
興味深いのはPATH
次のとおりです。
PATH
操作が開始されたすべてのパスを含む一時ファイルへのパス。各パスは、一時ファイルの個別の行にあります。
したがって、フックが呼び出されたら (ところで、任意の言語である可能性があります)、次の手順を実行します。
MESSAGEFILE
。中にコメントがあれば大丈夫、スクリプトから成功を返します (成功が 0 で示されるか !0 で示されるかは覚えていません。試してみてください)MESSAGEFILE
が空の場合は、ファイルPATH
を参照して、その中に影響を受ける要素があるかどうかを確認します。その場合は、エラーを返します。それ以外の場合は成功を返します。