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にコメントを書き込んだりできるわけですね。
すでにスクリプトは http://d.hatena.ne.jp/masanobuimai/20060512#1147445105 を参考に作成しておきました。
これを先のディレクトリに置いておけば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]#
この記事は
現在のアクセス:8414