連携

[subversion][trac]hook script 準備

$ sudo gunzip /usr/share/doc/trac/contrib/trac-post-commit-hook.gz
$ sudo chmod +x /usr/share/doc/trac/contrib/trac-post-commit-hook
$ sudo chmod +x /usr/share/doc/trac/contrib/trac-pre-commit-hook

[subversion][trac]subversion pre-commit-hook

$ cp /svn/java/PROJECT/hooks/pre-commit.tmpl /svn/java/PROJECT/hooks/pre-commit
$ chmod +x /svn/java/PROJECT/hooks/pre-commit

/svn/java/PROJECT/hooks/pre-commit に下記を追加

TRAC_ENV='/trac/cameliaTk/base'
LOG=`$SVNLOOG log -t "$TXN" "$REPOS"`
/usr/bin/python /usr/share/doc/trac/contrib/trac-pre-commit-hook "$TRAC_ENV" "$LOG" || exit 1

subversion post-commit-hook

$ cp /svn/java/PROJECT/hooks/post-commit.tmpl /svn/java/PROJECT/hooks/post-commit
$ chmod +x /svn/java/PROJECT/hooks/post-commit

/svn/java/PROJECT/hooks/post-commit に下記を追加

TRAC_ENV='/trac/cameliaTk/base'
LOG=`$SVNLOOG log -t "$TXN" "$REPOS"`
/usr/bin/python /usr/share/doc/trac/contrib/trac-post-commit-hook "$TRAC_ENV" "$LOG" || exit 1

試してみると

commitしたときにちゃんとチェックされているっぽい。
が、チケットIDを指定してもコミットできない。
エラーメッセージからすると

trac.core.TracError: The user svnuser requires read _and_ write permission to the database file /trac/PROJECT/db/trac.db and the directory it is located in.

とあるのでパーミッションだろうが、svnserveはsvnuserでxinetd経由で起動していて、svnuserはwww-dataグループに所属している。/trac配下はwww-data:www-dataで775なのに。
とりあえず、/trac/PROJECT/db以下を777にして回避。

チケットのクローズ

どうしてもチケットがコミットコメント経由でクローズしない。

svn export http://svn.edgewall.com/repos/trac/trunk/contrib/trac-post-commit-hook
svn export http://svn.edgewall.com/repos/trac/trunk/contrib/trac-pre-commit-hook

最新のスクリプトをゲットして差し替え->OK。