
CoolなEclipseプラグイン(15)
バージョン管理に便利なSubversiveプラグイン
佐藤里江
NTTデータ 鈴木八重
2007/3/2
| 今回の主な内容 |
そもそもSubversionとは何か?
Subversionとは、バージョン管理システムとして広く利用されているCVSの管理スタイルを踏襲しつつその欠点を解決したバージョン管理システムです。Google Trendsによると、日本ではSubversionの検索数がCVSをすでに上回っており(2007年3月現在)、関心が高まってきています。
実際、筆者の周りでもSubversionを利用しているプロジェクトが増えてきています。本稿では、SubversionをEclipseから利用するプラグインSubversiveとプロジェクト管理システム「Trac」との連携を中心とした利用ノウハウを提供します。
Subversionのメリット
■ チェンジセットによるリビジョン管理
バージョン管理システムにおいて、ローカルで編集した内容をリポジトリへ反映するために行う作業を、コミットといいます。
CVSはファイルごとにリビジョン番号が振られているため、このコミット作業はファイルごとに行っていきます。そのため、変更点が複数のファイルにまたがっている場合、変更点を把握するのが困難でした。
それに対し、Subversion(以下、SVN)はではリポジトリ全体にリビジョン番号を付けてバージョンの管理をしているので、コミット作業は関連ファイル全体を一度に行います。
実際に、この違いがどのように便利なのでしょうか?
ある機能に修正を加える状況を思い浮かべてください。その修正をするに当たって、複数のファイルを変更しなければならない場合、CVSのようにファイルごとに管理されていては、それが1つの修正によっての変更だということが分かりにくく、どのような経緯でそれぞれの変更がなされたかが不明確です。
まず、CVSによるバージョン管理を図1に示します。図1の例では、A、B、Cと3回の仕様変更による修正・コミットが行われています。CVSのようにファイルごとにリビジョン番号を付けて履歴を管理していると、A、B、Cそれぞれの仕様変更でどのファイルが修正されたのか、1つのファイルの履歴を見ただけでは把握できません。
![]() |
| 図1 CVSのバージョン管理のイメージ図 |
CVSに対し、SVNの場合はリポジトリ全体でリビジョン番号を管理しているため、各仕様変更によってどのファイルがどのように変更されたのか簡単に分かるようになっています。このおかげでバグトラッキングシステムなど、変更管理システムと一緒に利用した場合、故障や機能変更に対するそれぞれの変更の差分を簡単に確認できるようになります。
![]() |
| 図2 SVNコミット時のイメージ図 |
■ ファイルのコピー、リネームによるコミットの履歴の引き継ぎ
CVSでは、ファイルをコピーしたり、ファイルの名前を変更したりすると、ファイルの履歴を残せませんでした。
SVNでは、ファイルをコピーする場合や、ファイル名の変更をする場合でも、ファイルの履歴を引き継げます。リファクタリングによりパッケージ名やクラス名の変更を行う場合、CVSでは履歴は引き継げませんでしたが、SVNは引き継げます。SVNはリファクタリングにより強いバージョン管理システムだといえます。
■ プロトコルにHTTPを利用可能
CVSでは、リモートリポジトリへアクセスする際、独自プロトコルまたはSSH接続を使って接続します。これでは、ファイアウォールによってHTTP接続以外の接続が拒否されてしまっている場合、使用できません。
SVNは、ファイアウォールがある場合でも、WebDAVによってHTTP接続が可能となっているため、そのような状況でもリモートリポジトリにアクセスできます。
■ 柔軟なマージ機能
マージ機能とは、並行開発を行う際にある開発バージョンに反映した変更を別の開発バージョンに反映する機能です。
例えば、バージョン1.0、1.1、1.2、……と、1.x系のバージョンのメンテナンスをしながら、バージョン2.0、2.1と2.x系の開発を行う場合を考えます。1.xと2.xはほぼ同じコードをベースに開発している場合、2.1で発生したバグが1.2でも発生している可能性があります。このような場合、バージョン2.x系への修正をバージョン1.x系へマージすることによって、別の開発ブランチへバグ修正等の変更を反映できます。
CVSでは、マージ機能を利用するには、基本的にはタグを付与した場所からのみサポートしていましたが、SVNでは任意のリビジョン間の差分をマージできるようになっており、より柔軟なマージを行えます。
■ フック機能でできること
CVSと同様にフックの機能を利用することにより、コミットの前後で特定の処理を実行できます。このフック機能により、次のようなことができます。
- コミットログが記述されていない場合は、コミットさせない
- コミットログに故障管理IDや仕様変更IDが記述されていない場合は、コミットさせない
- コードチェックを行い、問題があった場合、コミットさせない
- コミット後、自動的にビルド/テストを行い、テスト結果やカバレッジのレポートを作成
Subversiveプラグインをインストール
Eclipseでは、デフォルトではSubversionをサポートしていません。そのため、EclipseからSubversionを利用するには、追加でプラグインをインストールする必要があります。
EclipseのSubversionプラグインとして用意されているプラグインは、SubversiveとSubclipseの2つです。ここでは、Eclipse FoundationへのProposalが承認されたSubversiveを紹介します。Subversiveは、すでにEclipse上にプロジェクトが作成されており、近々Eclipse Foundationで開発が行われるようになります。将来的には、Eclipse本体に取り込まれる予定です。
■ Trac月でSubversionのリポジトリの作成
本稿では、Subversionのリポジトリ作成を簡単に行える、Trac月を使用して、Subversionの使い方を説明します。
コラム Trac月とは |
| Tracとは、Wikiとバージョン管理システム、課題追跡システムを統合したプロジェクト管理システムで、Ruby on Rails、SpringIDEなどの開発で利用されています。Windows環境にプロジェクト管理ツールであるTracやSubversionをインストールするには、これらのソフトウェアのほかにApacheやPythonが必要であったり、ソフトウェアの設定を行う必要があり初心者には導入が困難です。 Trac月では、TracとSubversionが利用できる環境を構築できるインストーラを提供することにより、簡単に構成管理を行う環境を構築します。さらに、Mavenを利用したサンプルプロジェクトが提供されているため、Mavenによるライブラリ管理も簡単に体験できるようになっています。 また、「チケット」を使ってバグや課題を管理できたり、Subversionと連携させることによって(参照:Tracと連携させて開発を「見える化」する)バージョン管理をさらに効率化させることも可能です。 |
編集部注:Mavenについて詳しく知りたい読者は、「Java開発支援ツールの定番」の[Maven]や、連載第11回「ビルドを効率化するEclipseプラグイン」の[m2eclipseプラグイン]をご参照ください。
■ Trac月のインストール
Trac月のWebページに従いTracをインストールします。インストールすると、「http://localhost/svn/SampleProject」でサンプルのSubversionリポジトリへアクセスできるようになります。
■ Subversiveのインストール
Subversiveをインストールするには、下記アップデートサイトからプラグインをインストールします。
http://www.polarion.org/projects/subversive/download/1.1/update-site/
Subversiveのバージョン1.1.0RC6aから筆者(鈴木)によって日本語化したリソースが取り込まれているので、日本語でメニューなどを表示できます。現時点では、すべてのメッセージが日本語化されている訳ではありませんが、今後改良していく予定です。
1/3 |
| INDEX | ||
| Page1 | ||
| そもそもSubversionとは何か? Subversionのメリット チェンジセットによるリビジョン管理 ファイルのコピー、リネームによるコミットの履歴の引き継ぎ プロトコルにHTTPを利用可能 柔軟なマージ機能 フック機能でできること Subversiveプラグインをインストール Trac月でSubversionのリポジトリの作成 Trac月のインストール Subversiveのインストール |
||
| Page2 | ||
| Subversiveの利用方法 リポジトリを3タイプから選んでインポート ヒストリービューで履歴を確認 Tracと連携させて開発を「見える化」する |
||
| Page3 | ||
| コミットメッセージを好きなようにカスタマイズする クライアントの認証をSSLで行う CVSからの切り替えが簡単 |
||
CoolなEclipseプラグイン バックナンバー
- 第1回 Javaのプロパティファイルを編集するEclipseプラグイン
- 第2回 ソフトウェアの品質向上を支援するプラグイン
- 第3回 データベース開発を支援するプラグイン
- 第4回 Webアプリケーション開発を支援するプラグイン
- 第5回 正規表現の入力・テストを行うプラグイン
- 第6回 サンプルコードの入手をサポートするプラグイン
- 第7回 プログラミングにあると便利なプラグイン
- 第8回 RSSを表示できるEclipseプラグイン
- 第9回 データベースの利用に便利なEclipseプラグイン
- 第10回 スクリプト言語をサポートするEclipseプラグイン
- 第11回 ビルドを効率化するEclipseプラグイン
- 第12回 便利なプラグインの集大成MyEclipse
- 第13回 簡単にFlashアプリを作成できるFlexBuilder 2
- 第14回 軽量なUMLプラグインAmaterasUML
- 第15回 バージョン管理に便利なSubversiveプラグイン
- 第16回 EPFプラグインでらくらく開発プロセス管理!(入門編)
- 第17回 EPFプラグインでらくらく開発プロセス管理!(実践編)
- 第18回 お決まりコードを設計書から自動生成するblancoCsv
- 第19回 Project Zeroでスクリプト+Ajaxのアジャイル開発
- 第20回 ERダイアグラムを編集するAmaterasERDでDB設計
- 第21回 Apache LDAP StudioでLDAPはもう怖くない
- 第22回 JavaScriptを書かずにAjaxを実現するjMaki
- 第23回 Mylyn&Tracでリズムに乗ってタスクを大掃除♪
- 第24回 これはすごい!? コード品質のカイゼン化プラグイン2種
| Java Solution全記事一覧 |
TechTargetジャパン
- WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」 - Javaの例外処理で知らないと損する7つのテクニック (2011/12/20)
例外とエラー処理を使いこなすために独自に例外を定義する方法や、ちょっとした例外のテクニック・心構えを紹介します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


