Redmine入門 - バージョン管理システムとの連携
ある機能の追加やバグの修正に対するソースコードの修正内容とチケットを関連付けることができると
管理の幅が広がります。
Redmine では Subversion などバージョン管理システムとの連携手段がいろいろと用意されています。

連携の制限
バージョン管理システムと Redmine の連携の機能はいろいろあると書きましたが、 "Redmine" → "バージョン管理システム" の連携はすべて読み込みだけで、 Redmine からバージョン管理システムに登録されたファイルなどに変更を加えることは出来ないようになっています。逆に "バージョン管理システム" → "Redmine" では変更を加える機能があります。
この場合は バージョン管理システムと Redmine のユーザー名を一致させます。
違うユーザー名の場合は [リポジトリ] の設定で関連づけを行う必要があります。
利用可能なバージョン管理システム
Redmine では次のものが使用できます。(Redmine 1.3.0)- Subversion
- Darcs
- Mercurial
- CVS
- Bazaar
- Git
- Filesystem
Redmine のサーバーのローカルディレクトリをリポジトリとして使用します。 あまり、使うことはないのではないかと思います。
リポジトリの登録
Redmine でバージョン管理システムと連携するためには、 まずプロジェクトごとにプロジェクトのソースのあるリポジトリのパスを登録する必要があります。 登録するにはプロジェクトの [設定] の [リポジトリ] タグで指定します。ここで前節のバージョン管理システムから使用するバージョン管理システムを選択します。 ただし、システムの設定で使用可能なバージョン管理システムは変更できるので、 使えるものだけがリストから選択可能になっています。

バージョン管理システムを選択するとそのシステムごとの設定が表示されるので、 リポジトリの URL などを設定します。
設定後、プロジェクトメニュー [リポジトリ] のタグを選択するとリポジトリが表示されるようになります。 一度作成すると、 ユーザー名など以外は変更できなくなるので、 リポジトリの URL を変更したい場合は一度 [削除] する必要があります。
リポジトリブラウザ
[リポジトリ] タグからファイルの閲覧、ログ、差分の表示などが出来ます。 この機能はリポジトリブラウザと呼ばれています。リポジトリ内のファイルを表示する場合もコードハイライトされます。
このときも Wiki のコードハイライトのように CodeRay が使用されているのですが、プラグインを使うとUltravioletなどに変更することが出来ます。 こちらはコードハイライトできる種類が大量にあるので、 対応できない言語があって困るということはほとんどないでしょう。
Code Review プラグイン を使うとリポジトリのファイルや差分を表示する時にコードに対して、 コメントを付けることが出来ます。
このコメントの実体はチケットで、コメント時にメール通知も行われたりするので、 コードレビューに使うことが出来ます。
Wiki リンク(Redmine → バージョン管理システム)
Redmine からバージョン管理システムへの連携では Wiki でのリンクがあります。
r64 のように rリビジョン番号 と書くとリポジトリブラウザの指定リビジョンへのリンクとなります。
また、リポジトリのファイルを指定することも出来ます。
source:リポジトリからの相対パス source:foo/bar.c source:foo/bar.c@64#152 リビジョン64 の 152 行目この記述によりリポジトリブラウザ上の指定のファイルへのリンクとなります。 リポジトリ上のページではなく、直接ダウンロードしたい場合は source ではなく export をキーワードに使用します。
チケットとの連携 (バージョン管理システム → Redmine)
チケットとの関連付け
チケットとコードの修正を関連づける一番簡単な方法は、 バージョン管理システムでコミットする際のコメントの記述で Wiki のように #チケット番号 と書くことです。 こうするとリポジトリブラウザでログを表示した際にそれがチケットへのリンクとなっています。さらに "#チケット番号" の前に refs キーワードを付けると、そのチケットのページで関係しているリビジョンとしてコメントとともに表示されます。
term マクロがエラーとなる不具合修正 (refs #813)

コメントを記述する場合次の点に注意して下さい。
- refs と日本語をつなげない
- refs と # の間にスペース
チケットステータスの変更
バグなどの修正が終わって、バージョン管理システムでコミットするとき、 refs ではなく closes を使うと関連付けに加えて、以下の項目を変更することができます。- チケットステータス : ただし、デフォルトでは変更されない
- 進捗率 : デフォルトは 100%

このチケットの連携の説明ではデフォルトの設定のままのキーワードを記述していました。
実はこの refs などのキーワードと変更される項目の状態はシステムの設定で変更することが出来ます。 しかし、この設定をみることができるのはシステム管理者だけなので、 一般ユーザーは現在の設定がどうなっているのか知ることは出来ません。
こういった場合にはやはりRedmine インフォメーション プラグインです。 [情報] → [設定] から現在のシステムでのキーワード等の設定をみることが出来ます。

コメントを間違ったら ?
このチケットの連携ですが、以下の制限があるので、 チケット番号を間違った場合でも他のプロジェクトに影響を与えることはまずありません。- プロジェクトのリポジトリに登録された URL 以下の変更であること
- コミットする人がプロジェクトメンバーであること
例えば、 closes で [終了] に変更するような場合、 コミットしたメンバーに [終了] に変更する権限がなかったとしても変更できてしまいます。
また、 変更後を [解決] などにしていて、 [解決] のステータスのないトラッカーを作っていたとします。 そのトラッカーのチケットをキーワードで変更した場合には、ステータスを用意していないにもかかわらず、 [解決] になってしまいます。 そうした場合、灰色表示で管理者でも変更できなくなってしまいます。変更するためにはいったん [解決] のステータスを持つ別のトラッカーに変更する必要があります。
コメントで連携するための注意点を記述しましたが、 チケット番号を間違えたり、スペルミスしたりと意外と間違ってしまうことは多いです。
バージョン管理システムにはコメントを後から変更する機能があるものもありますが、 後から変更されたコメントの場合は関連のやり直しはやってくれません。
Commit Relation Editor プラグインを使うと後からでもチケットとの関連付けを変更することができるようになります。
Redmine のプラグインではありませんが、 Subversion のクライアントである TortoiseSVN には TortoiseSVN Redmine Issues Plugin というプラグインがあります。 これを使うと TortoiseSVN でのコメント入力時にチケット番号を選択して選べるようになります。
Redmine お勧めプラグイン - Add Subversion Links
プラグイン紹介のコーナー始めることにしました。 不定期ですが、お勧めプラグインや気になるプラグインを紹介していきたいと思います。
一回目は Add Subversion Links です。これは Subversion の http ページへのリンクを表示するプラグインです。
- Add Subversion Links - Plugins - Redmine
- redmine_add_subversion_links/README.ja.textile at master ・ masamitsu-murase/redmine_add_subversion_links ・ GitHub (日本語)
Subversion には、 Subversion 自身にリポジトリーの内容を http ページで表示する機能があります。
このプラグインを入れると、 Redmine のリポジトリーや Wiki での
r1234のような表記のところに Subversion の http ページへのリンクを表示するようになります。


最初このプラグインを知った時、正直
だから ?と思いました。
やっぱり、説明はちゃんと読むべきですね。 このプラグインは Chrome や Firefox の Open TortoiseSVN プラグインと組み合わせた時、初めて真価を発揮します。
ブラウザーのプラグインを入れているとリンクをクリックした時に TortoiseSVN が開くようになります。
Redmine 上から確認できるとは言っても、 やはりディスクトップアプリの方が速いし、使いやすいです。 Redmine からすぐ TortoiseSVN を開けて、とても便利になります。
インストール
redmine.org の Plugins Directory から zip ファイルをダウンロードします。 データベースを使うタイプではないので、 (RedmineRoot)/plugins ディレクトリーに展開し、 Redmine を再起動すれば、動作します。注意点としては、 プラグイン用の画像ファイルを使うので、 プラグインのディレクトリー名は必ず redmine_add_subversion_links でなければなりません。 ただ、 zip ファイルから展開すれば、その名前になっています。