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

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

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

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

  • EclipseのMylarでTracの障害問票を起票できる
  • もちろんそれはWEBブラウザでも閲覧できる。もちろん誰かの修正はEclipse/MylarでもWEBでも即座に反映される
  • ソースコードはSubversionで管理してて、もちろんEclipseからコミットできる
  • コミットの際のコミットログは、そのコミットのトリガとなる障害問票にコメントとして追記される
  • その障害問票がトリガとなったソース修正のdiff画面へは、その問票から即座に画面遷移できる
  • 最終的なコミットで、その障害問票はクローズされる*1
  • 適度にユーザ管理され、問票の起票やコミット作業は誰がやったか管理が出来る。

今のところこれくらいなら出来そうですね。*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 を参考に作成しておきました。

これを先のディレクトリに置いておけば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をつかう / コミット時に処理を行う

現在のアクセス:6995


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

添付ファイル: filepost-commit 1179件 [詳細] filetrac-post-commit-hook 1130件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-24 (金) 11:29:25 (4036d)