連携
[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。