RedmineとSubversionの連携は、プロジェクト管理と品質管理を効果的に遂行するための重要な手法です。
Redmineはオープンソースのプロジェクト管理ソフトウェアであり、チームでのタスク管理や情報共有をサポートします。一方、Subversionはオープンソースのバージョン管理ソフトウェアであり、ファイルの変更履歴の管理や共同作業を円滑に行うことができます。
この記事では
- RedmineとSubversionを連携するメリット
- RedmineとSubversionを連携させる方法
について順にご紹介します。
目次
- 1 RedmineとSubversionを連携するメリット
- 2 RedmineとSubversionの連携のやり方
- 2.1 RedmineとSubversion の連携環境
- 2.2 Redmin Server をインストールする
- 2.3 Subversion Server をインストールする
- 2.4 Subversion Client(Tortoise) をインストールする
- 2.5 Redmine全体でSubversionを使用可能にする
- 2.6 Redmine全体で日本語を使用可能にする
- 2.7 Redmine全体でリポジトリブラウザの文字コード自動判別を可能にする
- 2.8 リポジトリが利用可能なプロジェクトを新規登録する
- 2.9 このプロジェクトにリポジトリを登録する
- 2.10 プロジェクト全体に関連するリポジトリを参照する
- 3 まとめ
RedmineとSubversionを連携するメリット
普段必要な操作は作業PC内でのTortoiseSVNを使ったコミットのみ
例えば向かって一番左の Windows10 搭載PCでソフトウエアのソースコードの開発をしていたとして、その変更をSubversion Client (TortoiseSVN)を使い
refs #xxxx (#xxxx はRedmine 内のチケット番号)
というおまじないを含むコメントをつけてコミットすると、この変更が自動的に右から2番めのWindows 2019 Server Essential 搭載PC上のSubversion Server(VisualSVN)配下のリポジトリに保存されます。
さらにそのコメントは1番右のWindows 10上のRedmine Server 内のRedmine Serverから参照できるようになります。
問題(チケット)配下のリポジトリ修正履歴が参照可能
以下はこの関連記事の後半でSubversion Client (TortoiseSVN)の操作方法を説明するために行ったコミット操作に関連した、Redmine Server内の#385 番の課題(チケット)の連続したページの上下ですが
この赤枠で囲った部分に
リビジョン 54(差分) 20230507 Deploy.bat の15行目の先頭を大文字に変更 refs #385 |
という記載がありますね。
この記載は 先ほどの記事中でSubversion Client (TortoiseSVN)を使って行ったコミット作業の際に入力したコメントそのものです。
つまり作業PCの上でSubversion Client (TortoiseSVN)でコミット操作を実施すると、Redmine Serverでこの修正情報を関連する課題(チケット)に紐付け参照できるようになります。
そしてこのコミット操作履歴は、この課題(チケット)内の後半部分にコミット操作毎に
- ビジョン番号
- コミット操作の際に入力した修正内容を表すコメント
- 変更日時
がセットで自動的に追記されるので、この課題(チケット)に紐づいて行われたソフトウエアのソースコード修正を任意のタイミングで一覧表示できるというわけです。
問題(チケット)配下のリポジトリのリビジョン間差分表示が可能
では実際の変更内容はどうなっているのでしょうか
続いて同じく赤線で囲まれた部分にある 差分 というリンクをクリックすると
次のように変更前が左側、変更後が右側という画面構成の中で赤、緑でハイライトされて変更部分をRedmine内で見ることが出来ます。
これにより、このリビジョン54 では、0385/Remove.bat の15行目の最初の文字が小文字の’p’から大文字の’P’に修正されていることがわかります。
これって凄いと思いませんか?
実際のソースコード修正者は
一番左の Windows10 搭載PCでSubversion Client (TortoiseSVN)でコミット操作しただけですが
この課題(チケット)に関心のある修正者本人、およびそのチームメンバもRedmine Serverへアクセスするだけでこの課題(チケット)に関連した変更内容を何時でも知ることができるんです。
このRedmine の詳細については以下の参考図書が読みやすくてお勧めです。
RedmineとSubversionの連携のやり方
RedmineとSubversion の連携環境
まずこちらをご覧ください。
この図はしらかば堂の自宅内のワークスペース環境で
- Redmine Server
- Subversion Server(VisualSVN)
- Subversion Client(TortoiseSVN)
のインストールされているWindows 10 搭載PC、Windows 2019 Server Essentials 搭載PCの配置、接続関係を図示したものです。
役割分担を明確にする為に分離して表現していますが Redmine Server がインストールされいるWindows 10 搭載PC(192.168.aaa.10)とTortoiseSVN がインストールされているWindows 10 搭載PC(192.168.aaa.1x)は同一PCです。 |
Redmin Server をインストールする
まず導入環境にRedmine Server がインストールされている必要があります。もしまだ Redmine Server がインストールされていない場合には以下の記事を参考にまずRedmine Server をターゲットPCにインストールしましょう。
Subversion Server をインストールする
次に導入環境にSubversion Server がインストールされている必要があります。もしまだ Subversion Server がインストールされていない場合には以下の記事を参考にまずSubversion Server をターゲットPCにインストールしましょう。
Subversion Client(Tortoise) をインストールする
さらに Redmine Server は、Subversion Server のリポジトリにアクセスする際、同PC内にさらにSubversion Client(Tortoise)に含まれるSubversionモジュールを必要とします。
従ってまだ Subversion Client(Tortoise)がインストールされていない場合には以下の記事を参考にSubversion Server も同PCに一緒にインストールしましょう。
そしてRedmine Server がSubversionの起動コマンド svn.exe を実行できるように、その格納フォルダの絶対パス名
C:\Program Files\TortoiseSVN\bin
を環境変数 $PATH に登録しておく必要があります。
Redmine全体でSubversionを使用可能にする
続いてRedmineの中でSubversionを使用可能とするための全体設定を行います。
これにはまず管理者権限でRedmineにログインし、上部メニューから
管理
を選択し
そして左側のメニューから
設定
を選択します。
そして設定メニュー上部のリポジトリタブをクリックすると以下の画面となるので
赤線で囲まれた
Subversion
の前のチェックをクリックして保存します。
Redmine全体で日本語を使用可能にする
同様に Redmine に管理者権限でログインした状態から
管理 > 設定 > 表示
を選択した後、画面のように
デフォルトの言語:Japanese(日本語)
を選択して保存ボタンをクリックします。
Redmine全体でリポジトリブラウザの文字コード自動判別を可能にする
Redmineのリポジトリブラウザは、初期設定でソースコードのエンコーディングがUTF-8であることを前提にしているため、このままだとCP932(Shift-JIS)やEUC-JPなどのエンコーディングのソースコードは日本語の部分が文字化けしてしまいます。
そこで文字化けが発生しないよう、リポジトリ内で使われる可能性のあるエンコーディングをRedmineに設定して自動判別・変換が行われるようにします。
具体的には Redmine に管理者権限でログインした状態から
管理 > 設定 > ファイル
を選択した後、画面のように
添付ファイルとリポジトリのエンコーディング
に
cp932,utf-8,euc-jp
を入力して保存ボタンをクリックします。
Redmineはファイル、あるいは Subversionとの連携操作において使用されるリソースの文字コードをここで指定された順番でチェックしていき、文字コードマッチしたときその文字コードをRedmineの内部文字コードUTF-8に変換して処理します。
入力値と文字コードの対応は以下となっています。
入力値 | 意味 | 詳細説明 |
---|---|---|
cp932 |
CP932(Shift-JIS) |
|
utf-8 |
UTF-8(Unicode Transformation Format 8-bit) |
|
euc-jp |
EUC-JP(Extended Unix Code-JP) |
|
一般的に使われる日本語のエンコーディングはこのUTF-8, CP932, EUC-JPの三つなので、これでほぼカバーできます。
ここまでで Redmine Server がSubversionを使用可能とするための全体設定は終わりです。
リポジトリが利用可能なプロジェクトを新規登録する
次にRedmine内で既にSubversionとの連携を行いたいプロジェクトを新規に作成します。
具体的はまず Redmine に管理者権限でログインし、トップメニューの
プロジェクト
を選択し
次に画面右側の
✙新しいプロジェクト
をクリックします。
すると以下のような画面が現れるので*のついている必須入力項目
- 名称
- 識別子(このプロジェクトを一意に表す識別子を半角英数字数文字程度で記入)
を記入し、モジュール枠に含まれるリポジトリに必ずチェックを入れ 作成 ボタンをクリックします。
プロジェクト作成時にこの リポジトリ モジュールにチェックを入れないとプロジェクト操作でリポジトリを参照したり、Subversion と連携をすることができません。
このプロジェクト設定はあとで追加することができますが、プロジェクト運用方法を途中で変えるのは悪手なので、プロジェクトを立ち上げ直後にこの設定をします。
この設定はSubversionとの連携が必要なプロジェクトに対して個別に行います。これにより個々のプロジェクトごとに別のリポジトリが設定可能です。
すると入力した情報により新たにプロジェクトが作成され、 Redmine のトップメニューにある
プロジェクト
からこのプロジェクトを参照できるようになります。
ここでは例として 開発プロジェクトの採番 というプロジェクトを新規作成しています。
つまり accdb、bat、xlsx、といった複数の拡張子を持つファイル群をまとめてプロジェクト管理したかったため、
ユニークな番号=問題(チケット)番号
とできるように作ったプロジェクトです。
そしてこのプロジェクトの内容を確認したいときはそのプロジェクト名
開発プロジェクトの採番
をクリックします。
このプロジェクトにリポジトリを登録する
続けて
設定 > ✙新しいリポジトリ
を順にクリックします。
するとこのような画面が現れるので赤線枠内のそれぞれの項目に必要事項を入力し、最後に作成ボタンをクリックします。
それぞれの入力項目は次のようなものです。
項番 | フィールド名 | 入力例 | 説明 |
---|---|---|---|
1 | バージョン管理システム | Subversion | バージョン管理システムとして何を使用するかをプルダウンメニューから選択します。 |
2 | メインリポジトリ | ☑ | 今回登録するリポジトリをメインリポジトリとしたい場合に☑を入れます。 |
3 | 識別子 | 複数のリポジトリを定義したい場合にそれぞれのリポジトリを識別したいときに入力します。入力は任意です。 | |
4 | URL | http://url_of_repository/ | リポジトリのURLを入力します。 |
5 | ログインID | user | Redmineがリポジトリにアクセスする際に使用するログインIDを入力します。 |
6 | パスワード | password | 上記ログインIDに対するパスワードを入力します。 |
このURL、ログインID、パスワードは以下の関連記事
中で作成したリポジトリの
- Repository URL
- User name
- Password
つまりVisualSVN Server の管理画面で
Repository > Open in Web Interface
を順に選択した際に現れる
Web画面のURL、そしてその時に入力すべきユーザー名、パスワードと同じものを入力します。
すると次の画面が現れるので、ここまででこのプロジェクトに対するリポジトリの設定は終了です。
プロジェクト全体に関連するリポジトリを参照する
以後、Windows10 搭載作業PCでソフトウエアのソースコード変更後、
refs #xxxx (#xxxx はRedmine 内のチケット番号)
というおまじないを含むコメントをつけてコミットする運用を続けていくと
先にご紹介したように
- 問題(チケット)配下のリポジトリ修正履歴参照
- 問題(チケット)配下のリポジトリのリビジョン間差分表示
が可能です。
またRedmine側でこの
プロジェクトを選択後
リポジトリ
を選択することでこのプロジェクト全体に関連した
- リポジトリ名称
- リビジョン
- 最終更新からの経過日数
- 作成者
- 対応リポジトリにかかった最終変更で入力された最終コメント
- 最終リビジョンのリスト
等も参照できるようになります。
まとめ
RedmineとSubversionの連携は、プロジェクト管理と品質管理を効果的に遂行するための重要な手法です。
Redmineはオープンソースのプロジェクト管理ソフトウェアであり、チームでのタスク管理や情報共有をサポートします。一方、Subversionはオープンソースのバージョン管理ソフトウェアであり、ファイルの変更履歴の管理や共同作業を円滑に行うことができます。
RedmineとSubversionを連携させると、プロジェクト運営をよりスムーズに進めることができます。
この記事では
- RedmineとSubversionを連携するメリット
- RedmineとSubversionを連携させる方法
について順にご紹介しました。
この記事が読者の方の職場、自宅での生産性の向上に少しでもお役にたてれば幸いです。
こんにちは しらかば堂です。
RedmineとSubversionを連携し、あなたやあなたの開発チームの生産性を爆上げしましょう。