前のエントリで書いた以下の内容について試してみました。
TracLightningで「チケットに関するコメントを必須にする - タイトルは未定」の設定を行ってた場合、git commitする時にチケット番号入れ忘れると面倒なことになりそうですね。dcommitする時に怒られると思うので、後からまとめてコミットログを修正しないといけなくなる…
この辺はローカルの「commit-msg」フックを使ってチェックするようにしたらいいんだろうなぁ。ということで、これは今度考えてみよう。
git svnを使ってTracLightningのSVNリポジトリへclone,docomitしてみる - タイトルは未定
commit-msg の編集
.git\hooks に commit-msg を作成して、以下の様に編集します。
シェルスクリプトはちんぷんかんぷんなので、書き方おかしいかも。遠慮無く突っ込んで下さいw
#!/bin/sh #チケットに関するログが記載されているかのチェック exp="(?:close|closed|closes|fix|fixed|fixes|addresses|references|refs|re|see)" exp=$exp".?(#[0-9]+(?:(?:[, &]+| *and *)#[0-9]+)*)" grep -E "$exp" $1 > /dev/null if [ $? -ne 0 ]; then # echo 'At least one open ticket must be mentioned in the log message.' echo 'ログメッセージにチケット情報入れておくんなまし' | nkf -s exit 1 fi
正規表現は TracLightning が実際に行っているチェック*1からパクってます。
メッセージについては、git bashだとSJISにしておく必要があるので、nkf で SJIS に変換してます*2。