Trac 0.12以降でsubversionからチケットを更新する方法
Trac 0.12以降を導入してsubversionのコミットからチケットをcloseできなくなってしまった。Trac 0.11まではsubversionのレポジトリのhookディレクトリにpost-commitを配置して、trac-post-commit-hookを呼び出せばよかったのだが、Trac 0.12からはやり方が変わったようだ。
Trac 0.12以降でsubversion経由でチケットをclose出来るようにするには以下ので順を踏めば良い。以下ではMTracで複数のプロジェクトを動かしている場合を想定している。ディレクトリ名等は適宜読み替えること。
手順
- subversionのレポジトリのhookディレクトリに以下をpost-commitという名前で実行可能属性をつけて配置。
#!/bin/sh export TRAC_ADMIN="/opt/local/bin/trac-admin" export TRAC_ENV_PARENT_DIR="/Volumes/Data/trac" export PYTHON_EGG_CACHE="${TRAC_ENV_PARENT_DIR}/.egg_cache" export TRAC_ENV="${TRAC_ENV_PARENT_DIR}/hoge" ${TRAC_ADMIN} ${TRAC_ENV} changeset added "$1" "$2"
- 同様にpost-revprop-changeを配置
#!/bin/sh export TRAC_ADMIN="/opt/local/bin/trac-admin" export TRAC_ENV_PARENT_DIR="/Volumes/Data/trac" export PYTHON_EGG_CACHE="${TRAC_ENV_PARENT_DIR}/.egg_cache" export TRAC_ENV="${TRAC_ENV_PARENT_DIR}/hoge" ${TRAC_ADMIN} ${TRAC_ENV} changeset modified "$1" "$2"
- trac-adminを使用してユーザーに管理画面の使用権限を付加
$ trac-admin hoge permission add fuga TRAC_ADMIN
以上で0.11以前と同様に"close #123"や"fix #234"と書くだけでチケットがcloseされるようになった。
前の方法とこの方法とどちらがエレガントなのだろう・・・。
リンク
- TracPermissions ? The Trac Project http://trac.edgewall.org/wiki/TracPermissions
- WebAdmin ? The Trac Project http://trac.edgewall.org/wiki/WebAdmin
- CommitTicketUpdater ? The Trac Project http://trac.edgewall.org/wiki/CommitTicketUpdater
- 覚書 Trac の設定(Trac-0.12.1.ja1) http://ohwhsmm7.blog28.fc2.com/blog-entry-123.html