BTSのRedmine、だいぶ普及し始めたようだ。Railsな環境が必要になるので、セッティングにハマると導入が大変だったりするけど、最近はTracよりRedmineを導入している企業も増えてるみたいで…
で、Redmineで不満な点が2点あった。
- ログインに時間がかかるときがある
- Subversionのコミットメッセージに、「fixes #121」みたいにチケット番号を入れてコミットしても、Redmineのチケットのステータスが変わらない
1はいいのだけど、2は困る。
始めに説明すると、RedmineにはSubversionと連携する機能があって、
- Subversionのレポジトリの変更履歴が見られる
- Subversionのコミットメッセージに、あるキーワードをいれてコミットすると、Redmineのチケットのステータスが変わる
なんていうことができたりする。
あるキーワードというのは
- fixes #チケット番号
- closes #チケット番号
- refs #チケット番号
などで、チケットのステータスをどのように変えるかは、Redmine上で設定できるようになっている。
うちでは
- fixes #チケット番号 → ステータスを作業完了にして、進捗率を100%
- refs #チケット番号 → ステータスは変わらず、他のチケットとの関連付けを行う
と設定していた。
BTSとして使うとしても、TDD(チケット駆動開発)の管理ツールとして使うとしても、この機能はやはり外せない。 どのコミットが、どの仕様変更・修正に対応してるのか分かんなくなるし…
で、問題はキーワード付きでコミットしても、 Redmineのチケットのステータスが変わらないというところ。 正確には、一度レポジトリのタブを開くかリロードしてやらないと反映されないのだ。
前からずっと気になっていたんだけど、 単純にcronを使って解決する方法があった。 「小技(0.9): コミットと同時にリポジトリの情報を取得する | Redmine.JP Blog」
「これでいままで、コミット→レポジトリのタブリロード→チケットのステータスが変わったの確認 ってやってたのから解放されるな。」なんてTwitterでつぶやいていたら、 「入門Redmine Linux/Windows対応」の著者の@g_maedaさんこと前田 剛さんから、 他の方法もあるというのを教えてもらった。 「Redmine 0.9でしたらリアルタイムで取得することもできます」
おーっ!Redmine0.9以上でないといけないけど、はるかに便利だ。 小技(0.9): コミットと同時にリポジトリの情報を取得する | Redmine.JP Blog
具体的にはSubversionのpost-commitスクリプトを使う。 今までレポジトリを作る時に、なんか変なディレクトリあるなぐらいにしか思っていなかったんだけど、こういうことに使えるんだ。 ごめんよ、hooksディレクトリ。
それにしても、この前のZabbixに引き続き、著者の方直々に指摘をいただけるとはありがたすぎる…