Redmineとバージョン管理システムの連携

更新日 2023/04/11
作成日 2008/01/31

RedmineはSubversion等各種バージョン管理ツールとの連携機能を持っています。

リポジトリへのコミット時、コミットメッセージに特別な記述を追加することで以下の処理をRedmineに自動的に行わせることができます。

チケットとリビジョンの関連づけの例

リビジョンからチケットへのリンク

ソースコードの修正がどのチケットに基づくものなのか把握できます。

チケットからリビジョンへのリンク

あるチケットに記述された課題に対してどのようにソースコードが変更されたのかを把握できます。

事前準備

各プロジェクトでのリポジトリの設定

あらかじめ各プロジェクトの「設定」画面の「リポジトリ」タブで、バージョン管理システムの情報を設定しておく必要があります。

例えばSubversionを利用する場合は以下の内容を設定します。

バージョン管理システム "Subversion"を選択
メインリポジトリ ONにすると「リポジトリ」タブをクリックしてデフォルトで表示されます。また、チケットやWikiからリポジトリにリンクする際に識別子を省略するとメインリポジトリへのリンクとなります。
識別子 チケットやWikiからリポジトリを指定してリンクを行うとき、リポジトリを特定するために識別子を使用します。メインリポジトリ以外は識別子が必須です。
URL SubversionのURLを指定(例: http://example.jp/svn/repos/)
ログインID Subversionリポジトリにアクセスするためのユーザー名
パスワード Subversionリポジトリにアクセスするためのパスワード

「保存」ボタンを押して設定を保存すると、プロジェクトメニューに「リポジトリ」が追加されます。クリックして「リポジトリ」画面を開き、リポジトリ内のディレクトリやファイル、これまでのリビジョンが表示されることを確認してください。

Redmineのチケットとリポジトリのリビジョンの関連づけ

チケットの番号を特定のキーワード(参照用キーワード)とともにコミットログに記述すると、Redmine上でチケットとリビジョンを関連づけが行われます。これにより、Redmineの画面ではチケットとリビジョンを相互に参照できるようになります。

デフォルトでは次の参照用キーワードが利用できます。参照用キーワードは「管理」→「設定」→「リポジトリ」の設定項目「参照用キーワード」で変更することもできます。

  • refs #nnn
  • references #nnn
  • IssueID #nnn
$ svn commit -m '○○○機能を利用時の△△△な問題を修正。 refs #123'

※’refs #123’の前後に空白、改行以外の文字があるとキーワードとして認識されません。例えば、上の例では読点(。)と’refs 123’の間は半角スペースが必要です。

参照用キーワード無しでの関連づけ

「管理」→「設定」→「リポジトリ」画面で「参照用キーワード」に * を追加すると次のようにチケット番号のみの記述で関連づけを行うこともできます。

  • #nnn
  • (#nnn)

設定手順は下記でご確認ください。

Redmineの画面からの関連づけの追加・削除

コミットメッセージでチケット番号を記載し忘れたり誤ったチケット番号を記載したときなどは、「リポジトリ」画面で関連づけを修正することができます。詳細は以下のページを参照してください。

Redmineのチケットのステータス・進捗率の更新

ソースコードのコミットと同時にチケットのステータスや進捗率を更新することができます。Redmineの画面を開かずにリポジトリへのコミットだけでチケットを更新できるので便利です。

コミットと同時にチケットの更新するには、チケットの番号を fixes , closes というキーワード(修正用キーワード)とともに記述してください。前述したチケットとリビジョンの関連づけに加えて、チケットのステータスと進捗率の更新が行われます。デフォルトではステータスが「終了」に、進捗率が「100%」に更新されます。

修正用キーワード、修正用キーワードの利用により設定されるステータスや進捗率は、Redmineの「管理」→「設定」→「リポジトリ」画面で変更することもできます。

Redmineの作業時間の記録

Redmineはチケットに対して作業実施のために要した時間を記録することができますが、コミットメッセージ経由で作業時間を記録することもできます。

作業時間は、前述の参照用キーワード、修正用キーワードによるチケット番号の記述の後に @ とともに作業時間を記述します。

$ svn commit -m '○○○機能を利用時の△△△な問題を修正。 refs #123 @2.5h'

コミットメッセージによる作業時間の記録を行うためには事前の設定が必要です。設定手順は以下の記事でご確認ください。

関連情報