RedmineとGit等のバージョン管理システムを連携してできること
本記事では、RedmineとGit等のバージョン管理システムを連携してできることとそのメリットを解説します。
目次
RedmineとGit等のバージョン管理システムを連携してできること
Redmineは、GitやSubversion等のバージョン管理ツール(SCM)との連携機能を持っています。連携することで、様々なメリットがありますが、今回は2つに分けてご紹介します。
Redmineのチケットとリビジョンを紐づけられる
Git等のバージョン管理システムにコミットする際に、リビジョン(更新履歴)とRedmineのチケットを関連付けることができます。これにより、チケットに記載された機能の実装やバグの修正等の作業に対して、実際にどのようにソースコードが変更されたのかを追跡できるようになります。また、コミットとチケットの関連性を見ることで、バグの原因を特定し、修正を行いやすくなります。
Redmine上でGit等のリポジトリを閲覧できる
Redmine上でGitのリポジトリを閲覧できるため、最新リビジョンまでのコミットの状況を簡単に把握できます。また、指定したリビジョン間のソースコードの差分を確認できます。開発者が作業を行う際に、Git等のコマンドを操作することなく、Redmine上で状況の確認ができるため、開発作業の効率化に貢献します。
以上の2つのメリットについて、実際にどのような機能で実現できるのかをご紹介します。RedmineとGitHubの連携手順については別の記事で紹介しています。あわせてご覧ください。
チケットとリビジョンの関連付け
チケット画面で関連するリビジョンの確認
リビジョンとチケットを関連付けると相互に参照できるようになります。具体的には、関連付けを行うとRedmineのチケットに作業によってできたリビジョンへのリンクが表示され、ソースコードの変更内容を確認できます。
例えば、番号#10のチケットに対応するための作業を実施して、ソースコードを変更したとします。 変更したソースコードをGit等のバージョン管理システムにコミットするときに、コミットメッセージでチケット番号#10を参照する記述を追加します。 これにより、下の図のように関連付けたチケットに「関係しているリビジョン」タブが表示され、リビジョンや差分を表示する画面へのリンク、コミットメッセージが表示されます。
チケットを確認した際に、コミットメッセージから作業の結果どのようにソースコードが変更されたのかがわかります。
リビジョンの詳細と差分の確認
「リビジョン 90ada629」のリンクをクリックすると、リビジョンの詳細画面に遷移します。リビジョンの更新者、更新日時、コミットメッセージや関連付けられているチケットを確認できます。また、「変更」の箇所にファイル名が表示され、どのファイルに対して変更があったのかを確認できます。
「差分を表示」のタブをクリックすると、ファイルに対してどのような変更があったのかを確認できます。追加された行は緑、削除された行は赤で表示されるため、変更内容が一目でわかります。
このように、リビジョンとチケットを関連付けることで、チケットに記載された作業のために、誰がいつどのようにソースコードを変更したのかがすぐにわかります。また、ソースコードの変更はどのチケットの内容を元に行われたのかがわかります。
コミット時にチケットを関連付ける方法
Git等のバージョン管理システムにコミットする際に、コミットメッセージに「参照用キーワード」とともにチケット番号を記述すると、Redmine上でリビジョンとチケットが自動で関連付けられます。
「参照用キーワード」は、「管理」>「設定」>「リポジトリ」で設定できます。デフォルトでは、「refs」、「references」、「IssueID」の3つが設定されています。
例えば、Gitのコマンドを使ってコミットを行う際に、以下のようにコミットメッセージを記述すると、チケット#10と関連付けができます。
git commit -m "refs #10 READMEの改善"
コミット時に関連付けたチケットのステータスと進捗率を更新
コミットメッセージに「修正用キーワード」を記述すると、コミット時にチケットのステータスと進捗率を更新できます。「修正用キーワード」は、「管理」>「設定」>「リポジトリ」で設定できます。デフォルト値は設定されていないため、下の図のように「修正用キーワード」には、「closes」や「fixes」などのキーワードを、「適用されるステータス」には適当なステータスを、「進捗率」には適当な進捗率をそれぞれ入力して保存します。
例えば、Gitのコマンドを使ってコミットを行う際に、以下のようにコミットメッセージを記述すると、チケット#8のステータスを終了に、進捗率を100%に更新できます。
git commit -m "closes #8 インストール方法のアップデート"
下の図は、実際にコミットメッセージを使って、チケットのステータスと進捗率を更新したチケットの例です。「更新履歴」の箇所にホバーすると、コミットメッセージも確認できます。
コミット時に関連付けたチケットに作業時間を入力
コミットメッセージに「修正用キーワード」とともに、作業時間「@3:30」のように記述すると、コミット時に関連付けたチケットに作業時間を登録できます。
この機能ではデフォルトでは無効になっているため、「管理」>「設定」>「リポジトリ」より、下の図のように「コミット時に作業時間を記録する」を有効化した上で、「作業時間の作業分類」で、コミットで登録する作業時間の作業分類を選択して保存しておく必要があります。
例えば、Gitのコマンドを使ってコミットを行う際に、以下のようにコミットメッセージを記述すると、チケット#12に3時間半の作業時間を入力できます。
git commit -m "refs #12 @3:30 レスポンシブデザインの設定を変更"
下の図は、実際にコミットメッセージを使って、チケットに作業時間を入力した例です。
このように、コミット時にチケットを関連付けると、チケットとソースコードの変更が追跡できるだけでなく、ステータスや進捗率、作業時間の入力も同時にできるため、一度のコミットでRedmine上でのチケットの更新の操作を省くことができます。
リポジトリの閲覧
リポジトリ全体の状況の確認
Git等のバージョン管理システムと連携したプロジェクトでは、下の図のように「リポジトリ」タブでリポジトリにあるファイル群を閲覧できます。ブランチを作成している場合は、「ブランチ」の箇所より、ブランチごとの確認もできます。
画面の上部には、連携したリポジトリのフォルダやファイルの一覧が表示され、画面の下部の「最新リビジョン」には直近でコミットされたリビジョンが10件表示されるため、誰がいつどのファイルを変更したのかがすぐにわかります。
リビジョン間の差分の確認
リポジトリ画面で、下の図のように2つのリビジョンを選択して「差分を表示」をクリックします。
下の図の画面が表示され、選択したリビジョン間でファイルに対してどのような変更があったのかを確認できます。
リビジョンの詳細情報の確認
リビジョン番号(「f1c2fae8」などの文字列のリンク)をクリックすると、リビジョンの詳細情報が表示されます。
「チケットとリビジョンの関連付け」の箇所でも説明した通り、コミットメッセージや関連するチケット、ファイルへのリンクが表示されます。コミット時にチケットと紐づけるのを忘れた場合や、紐づけるチケットを間違えた場合は、この画面からチケットとの紐づけを行うこともできます。
ファイルの閲覧、履歴、アノテートの確認
リビジョンの詳細画面でファイル名のリンクをクリックすると、ファイルを閲覧できます。ファイルの閲覧画面には、「表示」、「履歴」、「アノテート」の3つのタブがあります。下の図は「表示」の画面です。単純にファイルの内容が表示されます。
下の図は「履歴」の画面です。ファイルに対するコミットの一覧が表示され、誰がいつどんなコミットをしたのかがわかります。
下の図は「アノテート」の画面です。ファイルのどこを誰がどのように変更したのかを確認できます。
リポジトリの統計情報の確認
統計情報を確認するには、下の図のリポジトリ画面の「統計」をクリックします。
下の図のように、リポジトリの更新状況が棒グラフで表示されます。
ピンク色のバー(リビジョン)はコミットの数を、青色のバー(変更)は追加・変更・削除されたファイルの延べ個数を表します。
グラフは、「月別のコミット」と「作成者別のコミット」の2つがあります。
- 「月別のコミット」
- 直近1年間のリビジョンと変更を月ごとに集計
- どの月に活発に開発が行われたかを把握できる
- 「作成者別のコミット」
- 全期間のリビジョンと変更をユーザーごとに集計
- 各ユーザーのプロジェクトへの活動量が定量的にわかる
このように、「リポジトリ」画面では、Git等のバージョン管理システムのリポジトリのファイルの一覧、コミットの情報、コミットによるソースコードの変更内容等を簡単に確認できます。Redmine上で課題やタスクを管理しながら、リポジトリの状況も確認できるため、開発状況の確認や必要な情報の収集に時間がかかりません。
参考文献
本記事は、一部以下の書籍を参考にして作成しています。
- 石原佑季子,前田剛.「バージョン管理システムとの連係」.『入門Redmine 第6版』.株式会社 秀和システム,2024,p.334-347
RedmineとGitHubの連携手順については別の記事で紹介しています。あわせてご覧ください。
まとめ
GitやSubversion等のバージョン管理システムとRedmineを連携してできることをご紹介しました。連携することでリビジョンとチケットを相互に参照できるため、チケットに記載された作業がソースコードにどのように反映されたのかを追跡できます。ぜひ連携してみてください。
テクマトリックスでは、Redmineのクラウドサービスを提供しています。「GitHub連携オプション」をご契約いただくと、RedmineとGitHubの連携ができます。クラウドサービスのため、面倒なメンテナンスの手間やコストを省くことができます。ぜひ導入をご検討ください。