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

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

redmine_scm.png

連携の制限

バージョン管理システムと Redmine の連携の機能はいろいろあると書きましたが、 "Redmine" → "バージョン管理システム" の連携はすべて読み込みだけで、 Redmine からバージョン管理システムに登録されたファイルなどに変更を加えることは出来ないようになっています。

逆に "バージョン管理システム" → "Redmine" では変更を加える機能があります。
この場合は バージョン管理システムと Redmine のユーザー名を一致させます。

違うユーザー名の場合は [リポジトリ] の設定で関連づけを行う必要があります。

利用可能なバージョン管理システム

Redmine では次のものが使用できます。(Redmine 1.3.0)

リポジトリの登録

Redmine でバージョン管理システムと連携するためには、 まずプロジェクトごとにプロジェクトのソースのあるリポジトリのパスを登録する必要があります。 登録するにはプロジェクトの [設定] の [リポジトリ] タグで指定します。
ここで前節のバージョン管理システムから使用するバージョン管理システムを選択します。 ただし、システムの設定で使用可能なバージョン管理システムは変更できるので、 使えるものだけがリストから選択可能になっています。

rt_repository.png
バージョン管理システムを選択するとそのシステムごとの設定が表示されるので、 リポジトリの 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)
rt_refs.png
コメントを記述する場合次の点に注意して下さい。
  • refs と日本語をつなげない
  • refs と # の間にスペース
これを間違うとと上手く連携してくれません。 特に refs の前に全角スペースなどを書いているとなぜ失敗しているのか見てもよく分からなくなります。

チケットステータスの変更

バグなどの修正が終わって、バージョン管理システムでコミットするとき、 refs ではなく closes を使うと関連付けに加えて、以下の項目を変更することができます。
  • チケットステータス : ただし、デフォルトでは変更されない
  • 進捗率 : デフォルトは 100%

redmine_scm_commit.png
このチケットの連携の説明ではデフォルトの設定のままのキーワードを記述していました。
実はこの refs などのキーワードと変更される項目の状態はシステムの設定で変更することが出来ます。 しかし、この設定をみることができるのはシステム管理者だけなので、 一般ユーザーは現在の設定がどうなっているのか知ることは出来ません。

こういった場合にはやはりRedmine インフォメーション プラグインです。 [情報] → [設定] から現在のシステムでのキーワード等の設定をみることが出来ます。

rt_commit.png

コメントを間違ったら ?

このチケットの連携ですが、以下の制限があるので、 チケット番号を間違った場合でも他のプロジェクトに影響を与えることはまずありません
  • プロジェクトのリポジトリに登録された URL 以下の変更であること
  • コミットする人がプロジェクトメンバーであること
ただし、条件を満たした場合にはチケットステータスを変更する機能は結構強制的なので、注意が必要なことがあります。
例えば、 closes で [終了] に変更するような場合、 コミットしたメンバーに [終了] に変更する権限がなかったとしても変更できてしまいます。
また、 変更後を [解決] などにしていて、 [解決] のステータスのないトラッカーを作っていたとします。 そのトラッカーのチケットをキーワードで変更した場合には、ステータスを用意していないにもかかわらず、 [解決] になってしまいます。 そうした場合、灰色表示で管理者でも変更できなくなってしまいます。変更するためにはいったん [解決] のステータスを持つ別のトラッカーに変更する必要があります。


コメントで連携するための注意点を記述しましたが、 チケット番号を間違えたり、スペルミスしたりと意外と間違ってしまうことは多いです。
バージョン管理システムにはコメントを後から変更する機能があるものもありますが、 後から変更されたコメントの場合は関連のやり直しはやってくれません。
Commit Relation Editor プラグインを使うと後からでもチケットとの関連付けを変更することができるようになります。


Redmine のプラグインではありませんが、 Subversion のクライアントである TortoiseSVN には TortoiseSVN Redmine Issues Plugin というプラグインがあります。 これを使うと TortoiseSVN でのコメント入力時にチケット番号を選択して選べるようになります。


スポンサーサイト



 

GitHub, Bitbucket でのファイルのダウンロード方法

最近、 GitHubBitbuket でソフトウェアを公開している人が増えてきました。
今回はこれらのサイトからファイルをダウンロードする方法の説明です。

なお、 単なるダウンロードのみで、 クローンの仕方については説明してません。 GitHub を使った開発ついて知りたい場合は以下の記事をご覧ください。

ダウンロード対象

ここで説明するダウンロードの対象はソフトウェアのソースコードです。
プログラミング言語にはスクリプト言語とコンパイル型の言語があります。 スクリプト言語はソースコードを直接実行するので、ソースコードをダウンロードします。

一方、コンパイル型言語では、コンパイルして exe などの実行ファイルにして使います。 実行ファイルはプロジェクトのトップページなどでダウロードページが紹介されていることが多いので、 そちらからダウンロードして下さい。
ダウンロードページがない場合にはソースをダウンロードして、自分でコンパイルする必要があります。

分散バージョン管理システムの概要

GitHub, Bitbucket のサイトでは GitMercurial分散バージョン管理システムでソースファイルが管理されています。
ただダウンロードするだけでも、ある程度は知っておいた方がわかりやすいでしょう。 先にバージョン管理について簡単に説明します。

Tag

プログラムの開発はソースの編集、登録を行って進んでいきます。
バージョン管理システムには、 ある時点のソースに名前をつける Tag 機能があり、 リリース時のバージョン番号などに使われます。
Tag
Mercurial では最新のソースは特に tip と呼ばれます。

Brunch

基本的にソースの開発ラインは 1 本です。
しかし、リリース後、メインの開発は進んでいるけど、 バグ修正だけを入れてリリースしたい時があります。 こうした場合、ソースコードを分岐して管理します。 この個々のラインが Branch です。
Brunch
メインの Branch は masterdefault と呼ばれます。

リポジトリーとクローン

バージョン管理システムでは、過去の履歴を含めてソースコードの情報を持っています。 これをリポジトリーといいます。

ダウンロードではソースコードの一時点を取り出してくるのに対して、 クローンではリポジトリーをまるごと自分の PC に複製します。
(正確には過去の履歴全てというわけではありませんが)

クローンの特徴は次のようなところです。
  • デメリット
    • Git 等のバージョン管理システムをインストールし、使い方を覚える必要がある。
    • 過去の履歴という余分なデータがある
  • メリット
    • バージョンアップの更新が簡単
このため、 Git などがインストール済みで使い方も知っている場合や 最新の開発版をこまめに追いかけたいといった場合はクローンの方がいいです。 ただ安定版を使いたいといった場合はダウンロードで十分でしょう。

GitHub

GitHub はその名のとおり Git で管理するホスティングサービスです。
GitHub Top

圧縮ファイルでのダウンロード

GitHub では、ソースファイルを圧縮ファイルとしてまとめてダウンロードできます。 ただ、プロジェクトのトップページからすぐダウンロードするのはやめましょう
ここで表示されているのは、メインブランチの最新です。 これは最新バージョンというわけではなく、開発版です。

バージョンを指定してダウンロードするには、 [releases] のタブを選択します。 バージョンの一覧が表示されるので、ここでバージョンや圧縮形式を選んでダウンロードします。
GitHub Releases Downloads


ただ、バージョンが一つもない場合もあります。
この場合には、先程のプロジェクトのトップページからダウンロードします。 ページ右にある [Download ZIP] ボタンを選択するとダンロードが始まります。
GitHub Download ZIP

ファイル単体でのダウンロード

ダウンロードしたいファイルが一つだけという場合もあります。 こういった場合、そのファイルだけを取得することもできます。

まず、バージョンを指定します。
[branck:master] のボタンをクリックし、 [Tags] からバージョンを選択します。 (何もない場合もあります)
GitHub Select Version

次にファイルのリストから対象をクリックして、そのファイルを表示させます。
[Raw] ボタンを右クリックして、 [名前を付けてリンク先を保存] から保存します。
GitHub File Save


追記 2014-01-29
GitHub のページが少し変更になったので、画像を差し替えて、記事を修正しました。

Bitbucket

Bitbucket は Git または Mercurial で管理するホスティングサービスです。
Bitbucket Top

圧縮ファイルでのダウンロード

Bitbucket の場合はまず [Downloads] のタブを選択して、 ダウンロードのページにします。
ダウンロード用のファイルが用意されている場合はここにあります。
Bitbucket Download Top

なければ [Tags] のタブを選択します。
ここからダウンロードしたいバージョンの圧縮ファイルを取得します。
Bitbucket Downloads

ファイル単体でのダウンロード

ダウンロードしたいファイルが一つだけの場合には、 まず [Source] タブを選択し、ファイルのリストを表示します。
次に [default] のボタンをクリックし、 [Tags] のバージョンを選択します。
Bitbucket Select Version

後は、 GitHub と同様に対象ファイルを表示して、 [Raw] ボタンからリンク先を保存します。
Bitbucket File Save
 

Redmine お勧めプラグイン - Add Subversion Links

プラグイン紹介のコーナー始めることにしました。 不定期ですが、お勧めプラグインや気になるプラグインを紹介していきたいと思います。

一回目は Add Subversion Links です。
これは Subversion の http ページへのリンクを表示するプラグインです。

Subversion には、 Subversion 自身にリポジトリーの内容を http ページで表示する機能があります。
このプラグインを入れると、 Redmine のリポジトリーや Wiki での r1234 のような表記のところに Subversion の http ページへのリンクを表示するようになります。
Repository links

Wiki links

最初このプラグインを知った時、正直 だから ? と思いました。
やっぱり、説明はちゃんと読むべきですね。 このプラグインは Chrome や Firefox の Open TortoiseSVN プラグインと組み合わせた時、初めて真価を発揮します。

ブラウザーのプラグインを入れているとリンクをクリックした時に TortoiseSVN が開くようになります。
Redmine 上から確認できるとは言っても、 やはりディスクトップアプリの方が速いし、使いやすいです。 Redmine からすぐ TortoiseSVN を開けて、とても便利になります。

インストール

redmine.org の Plugins Directory から zip ファイルをダウンロードします。 データベースを使うタイプではないので、 (RedmineRoot)/plugins ディレクトリーに展開し、 Redmine を再起動すれば、動作します。

注意点としては、 プラグイン用の画像ファイルを使うので、 プラグインのディレクトリー名は必ず redmine_add_subversion_links でなければなりません。 ただ、 zip ファイルから展開すれば、その名前になっています。

Open TortoiseSVN のインストール

以下のリンク先を開き、 [インストール] のリンクを押せば、インストールされます。 ただし、インストールだけでは TortoiseSVN は呼び出されません。 プラグインの設定で使うリポジトリーを登録する必要があるので、注意して下さい。

 
このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
26位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
8位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

05月 | 2023年06月 | 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。