Top / バグトラッキングシステムTracをつかう / コミット時に処理を行う

Subversionはたとえばコミット時に開発者にメールするなど、Subversionへのアクションをフックしてなにか処理をさせることが出来ます。

現在バグトラッキングシステムのTracとの連携を色々調べてますが、この機能を使って処理を行い、Tracのバグ問票(以下チケットといいます)にコメントを追加したり、チケットをクローズさせたり色々できるみたいですね。

とりあえずもくろんでるのは

今のところこれくらいなら出来そうですね。*2

さてその仕組みですが、SVNははじめからフック機能が備わっています。つまりフックスクリプトにもあるとおり、コミットする前・した後などいろんなイベントに反応するリスナが定義されていて、テンプレートが用意されています。具体的には

[root@www opt]# cd /opt/svnroot/hooks/
[root@www hooks]# ls -lrt
合計 36
-rw-r--r--  1 apache apache 2136  6月  7 23:24 start-commit.tmpl
-rw-r--r--  1 apache apache 1988  6月  7 23:24 pre-unlock.tmpl
-rw-r--r--  1 apache apache 2763  6月  7 23:24 pre-revprop-change.tmpl
-rw-r--r--  1 apache apache 2016  6月  7 23:24 pre-lock.tmpl
-rw-r--r--  1 apache apache 2933  6月  7 23:24 pre-commit.tmpl
-rw-r--r--  1 apache apache 1542  6月  7 23:24 post-unlock.tmpl
-rw-r--r--  1 apache apache 2254  6月  7 23:24 post-revprop-change.tmpl
-rw-r--r--  1 apache apache 1615  6月  7 23:24 post-lock.tmpl
-rw-r--r--  1 apache apache 2014  6月  7 23:24 post-commit.tmpl
[root@www hooks]#

こんな感じです。これらはテンプレートで、たとえばコミット後に○○したい場合は

[root@www hooks]# cp -pfr post-commit.tmpl post-commit
[root@www hooks]# chmod 755 post-commit
[root@www hooks]# ls -lrt
合計 40
-rwxr-xr-x  1 apache apache 2014  6月  7 23:24 post-commit
[root@www hooks]#

としておいて post-commit に処理を書いておけばOKです。

これでコミット後にpost-commitが呼ばれます。そこにTracへの処理を書いておけば、Tracにコメントを書き込んだりできるわけですね。

コミット時にTracのチケットにコメントを書き込む

すでにスクリプトは http://d.hatena.ne.jp/masanobuimai/20060512#1147445105 を参考に作成しておきました。

filepost-commit
filetrac-post-commit-hook

これを先のディレクトリに置いておけばOKです。

[root@localhost hooks]# pwd
/opt/svnroot/hooks
[root@localhost hooks]# ls -lrt
合計 52
-rwxr-xr-x  1 apache apache 6980  6月  7 15:54 trac-post-commit-hook
-rwxr-xr-x  1 apache apache 2422  6月  8 00:45 post-commit
[root@localhost hooks]#
refs #nn
チケット側にもコミットログが書き込まれて,さらにチェンジセットへのリンクも張ってくれる
closes #nn
チケットをクローズする

この記事は

選択肢 投票
おもしろかった 1  
そうでもない 0  

Top / バグトラッキングシステムTracをつかう / コミット時に処理を行う

現在のアクセス:8414


*1 これはコミットで行わなくてもいいかな?
*2 Trackerにしてみると当たり前??

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS