1

空のログ メッセージをチェックする SVN (つまり、Windows の .bat ファイル) で pre-commit フックを作成したいと考えています。さらに、このチェックを SVN の特定のフォルダーに対してのみ対象にしたいと考えています。

誰でも同じことを手伝ってもらえますか?

よろしく、 ルヒー・ジャイスワル

4

4 に答える 4

1

Windows で TortoiseSVN を使用している場合は、svn プロパティを使用することをお勧めします。

tsvn:logminsize は、コミットのログ メッセージの最小の長さを設定します。ここで指定したよりも短いメッセージを入力すると、コミットは無効になります。この機能は、コミットごとに適切な説明メッセージを提供することを思い出させるのに非常に役立ちます。このプロパティが設定されていない場合、または値がゼロの場合、空のログ メッセージが許可されます。

また、バグ トラッカーの統合などの他の機能も確認してください。

フックを使用してサーバー側でこれを本当にやりたい場合は、これを試すことができます。その場合、質問は重複しています:)

于 2012-03-02T10:59:03.210 に答える
0
  1. 一部のサブツリーのイベントでのみ機能するフックを持つことはできません
  2. フックは、リポジトリ全体のイベントのハンドラーです
  3. 影響を受けるレポの一部のみをチェックする場合は、フックコード内にロジックを追加する必要があります
于 2012-03-02T11:08:20.517 に答える
0

この回答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  
于 2012-03-03T12:21:48.157 に答える
0

TortoiseSVNに問題がなければ、そこにクライアント側のフックを入力できます。

TortoiseSVN は以下のパラメータを pre-commit フックに渡します:

PATH DEPTH MESSAGEFILE CWD

興味深いのはPATH次のとおりです。

PATH
操作が開始されたすべてのパスを含む一時ファイルへのパス。各パスは、一時ファイルの個別の行にあります。

したがって、フックが呼び出されたら (ところで、任意の言語である可能性があります)、次の手順を実行します。

  1. の内容を確認してくださいMESSAGEFILE。中にコメントがあれば大丈夫、スクリプトから成功を返します (成功が 0 で示されるか !0 で示されるかは覚えていません。試してみてください)
  2. MESSAGEFILEが空の場合は、ファイルPATHを参照して、その中に影響を受ける要素があるかどうかを確認します。その場合は、エラーを返します。それ以外の場合は成功を返します。
于 2012-03-02T11:16:53.970 に答える