trac-post-commit-hookが便利すぎる

Subversionのコミットログに「#nn」とか書くと,Tracのチケットにリンク張ってくれて便利なんだけど,チケットからチェンジセットに逆リンク張るのは手作業でやっていて,イマイチと思ってたんだけど,これにて解決.


ここを参考にして,Subversionにpost-commit hookを設置してみた.
http://yamashita.dyndns.org/blog/247
「/usr/share/doc」に所定のスクリプトは置いてなかったので,ここから取得(158-157のDBバージョンチェックでコケるんでコメントアウトしといた).
trac-post-commit-hook


post-commitはこんな感じ.
Fedoraで動かしてんだけど,「export LANG=ja_JP.UTF-8」がミソらしい.

#!/bin/sh
REPOS="$1"
REV="$2"

export LANG=ja_JP.UTF-8
LOG=`/usr/bin/svnlook log -r $REV $REPOS`
AUTHOR=`/usr/bin/svnlook author -r $REV $REPOS`

/usr/bin/python ${REPOS}/hooks/trac-post-commit-hook ?
 -p "/foo/trac/hogeproject" ?
 -r "$REV"    ?
 -u "$AUTHOR" ?
 -m "$LOG"

「refs #nn」ってやれば,チケット側にもコミットログが書き込まれて,さらにチェンジセットへのリンクも張ってくれる(「closes #nn」でチケット閉じちゃう)..


やー,いいわこれ.Trac使いたいからSubversion使ってるって言ってもいいくらいだ.