2

私の同僚はとても頑固です。当初、彼らはメッセージなしでコミットしていたので、私は彼らを教育し、彼らが忘れた場合に備えて空であることをチェックする事前コミット スクリプトを入れようとしました。その後、彼らは「修正済み」のようなメッセージを入れたので、私は彼らともう一度話し、スクリプトを更新してバグトラッカーに強制的にリンクさせました。現在、同じファイルに対して同じコミット メッセージを 8 回続けて入力しています (バグ ID: バグ タイトル)。

これがいかに役に立たないかについて彼らに話した後、コミット メッセージが最後の 20 個のコミット メッセージのいずれかと同一でないことをチェックする pre-commit フックを作成するにはどうすればよいでしょうか?

4

2 に答える 2

1

svnlook には 2 つのオプションがあり、これらを組み合わせてこれを整理できます。

svnlook ログhttp://svnbook.red-bean.com/en/1.7/svn.ref.svnlook.c.log.html

svnlook 最年少http://svnbook.red-bean.com/en/1.7/svn.ref.svnlook.c.youngest.html

最年少がヘッド リビジョンを取得します。次に、最後の 20 件のコミットを temp にエコーします。ファイルを開き、grep を使用して一時ファイル内のコミット メッセージを検索します。ファイル。

grep オプションは、ファイルを入力として使用する場合は F、行全体に一致する場合は x、静かな場合は q です。

    #Prevent people putting in the same commit message multiple times by looking for an identical message in the last 20 commits
    ID=$(svnlook youngest $REPOS)
    COMMITS=/tmp/svncommits.txt
    rm $COMMITS
    for (( i=$ID-20; i<=$ID; i++ ))
    do
        echo $(svnlook log $REPOS -r $i) >> $COMMITS
    done

    if $(grep -Fxq "$COMMIT_MSG" "$COMMITS") ; then
        echo "Please describe what your change is, why you made it and don't use the same commit message every time." 1>&2
        exit 1
    fi
于 2013-10-07T20:51:21.463 に答える