May 25, 2007

[Subversion] Subversion と Trac の連携にチャレンジ (1)

Subversion には、クライアントプログラム用に "bugtraq" で始まるプロパティが規定されている。 このプロパティが指定されているディレクトリはバグトラッキングシステムとの連携機能が特別に用意される(大抵のクライアントで)。 というわけで、Subversion と Trac を連携させてみた。

Issue Tracker Integration
http://svn.collab.net/subclipse/help/topic/org.tigris.subversion.subclipse.doc/html/reference/issuetracker.html
Integration of Subversion (GUI) clients with Bug Tracking Tools
http://guest:guest@tortoisesvn.tigris.org/svn/tortoisesvn/trunk/doc/issuetrackers.txt

設定したプロパティ

設定するのはディレクトリのみで OK。 TortoiseSVN を使用すると再帰的に設定を行ってくれるので便利。

bugtraq_url https://www.example.com/trac/ticket/%BUGID% Issue Tracker の URL。"%BUGID%"という文字列がコミット時に入力された Issue ID に自動的に置換される。
bugtraq_label "Ticket ID" Subversion クライアントに表示される ID 用のラベル。Trac の場合は Bug も Issue も Ticket と呼ばれているので Ticket ID にしている。
bugtraq_message "#%BUGID%" コミット時、コメントに自動的に追記されるメッセージ。
bugtraq_warnifnoissue false コミット時に Issue ID が指定されなかった場合に警告をするか否か。個人的にコード以外の情報も Subversion で管理しているので false にしているが、開発用リソースのみが格納されているディレクトリの場合は true の方が良いかもしれない。
bugtraq_number true Issue ID が数値かどうか。Issue ID が Subversion クライアントに入力された際、クライアントが Issue ID をバリデーションしてくれる。
bugtraq_append false bugtraq_message で指定したメッセージを、ユーザが入力したコメントの「前」に追記するか「後」に追記するかを指定する。false の時に前になる。
bugtraq_logregex "#?(\d+)" Issue ID の正規表現。Issue ID が Subversion クライアントに入力された際、クライアントが Issue ID をバリデーションしてくれる。

TortoiseSVN のコミット画面の変化

設定前 設定後
[TortoiseSVN設定前] [TortoiseSVN設定後]

Subclipse のコミット画面の変化

設定前 設定後
[Subclipse設定前] [Subclipse設定後]

Posted in Subversion | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |