Eclipse × Subversive = ♥

no extension

って, Vox みたいなタイトルの付け方だけど。 Eclipse 上で Subversion のリポジトリをコントロールする方法についてメモ。

Eclipse で使える Subversion のプラグインとしては, SubclipseSubversive の2つがあるらしい。 両者の違いが今ひとつ分からないのだが, あちこちの記事を読んでみると, 現時点では Subversive を選択したほうがよさげである。 なので, 今回は Subversive を試すことにする。

といっても, 実際には Eclipse のアップデート機能を使えば簡単にインストールできる。

まずは関連するプラグインとして Mylyn と ProjectSet を入れておく。 Europa では既にパッケージに Mylyn が組み込まれているので改めてインストールする必要はない。 ProjectSet は必要なら (Eclipse のアップデート機能を使って) 入れておく。 新規リモートサイトとして ProjectSet Update Site を登録して検索すればよい。

目的の Subversive も同様。 Eclipse のアップデート機能を使う。 新規リモートサイトとして Polarion Software を登録して検索すればよい (URL は変わることがあるらしいので Polarion Community で最新情報をチェックしておくとよい)。 インストールの際, あらかじめ ProjectSet を導入していない場合は, Integration Plug-in にある “Integration for the CSC Project Set Project” を項目から外しておくこと。

プラグインを導入すると再起動を要求されるが, AOP 翻訳コンテナである Pleiades を導入している場合は, 再起動時に -clean オプションを付けるのを忘れずに (つまり再起動は手動で行ったほうが良い)。 設定(チーム → SVN)で Subversive が使う SVN クライアントを選択できる。 初期値は JavaHL になっているようだが, 私は SVN Kit に変更した。 深い意味はない(JavaHL のほうがちょっと遅いという噂もあるが未確認)。 SVN Kit は JavaSVN の後継だそうだ。 また file: スキーマに対応しているのは SVN Kit と JavaHL だそうで, どちらか好きなほうを選べばいいと思う。 (代替え手段があるというのは良いことである)

さてリポジトリ管理だが, まず Eclipse のワークスペース用に新規にリポジトリを作成することをお薦めする。 既存のリポジトリのどこかのディレクトリにインポートすることも可能だが, おそらく管理が煩雑になってしまうと思う。 Eclipse 上で既存のプロジェクトをリポジトリに登録するには, プロジェクトのコンテキストメニューから「チーム」→「プロジェクトの共用」と進む。 で, ロケーション情報を設定しプロジェクト・リポジトリ・レイアウトに進む。 ここで Subversive では3種類のレイアウトからひとつを選択できるようになっている。

ひとつ目は「リポジトリ・ロケーション・レイアウトを使用」する方法。 URI で書くとこんな感じ。

svn://hostname/repository_dir/trunk/projectname

一番ベーシックなレイアウトだ。 プロジェクトをひとつだけ管理する場合はこのレイアウトで問題ない。 ただし管理するプロジェクトがたくさんあるとタグ付けやブランチが煩雑になってしまう。

ふたつ目は「単一プロジェクト・レイアウトを使用」する方法。 URI で書くとこんな感じ。

svn://hostname/repository_dir/projectname/trunk

これは複数のプロジェクトを管理する際に, プロジェクトごとに trunk, tags, branches を個別管理するのに向いている。

みっつ目は「指定されたルート名で複数のプロジェクトレイアウトを使用」する方法。 URI で書くとこんな感じ。

svn://hostname/repository_dir/rootname/trunk/projectname

これならルートごとに trunk, tags, branches を共用するプロジェクトをまとめることができる。

リポジトリのレイアウトはいつも悩ましい問題なので, こういう形でシンプルにまとめてくれるのはありがたい (それでもやっぱり悩むんだけどね。 まるで RPG でキャラクターの名前やパラメータの割り振りを考えるときみたいに)。 そうそう, ディレクトリ(trunk, tags, branches も含めて)は自動的に作成されてインポートもチェックアウトも全自動でやってくれる。 最初にリポジトリだけ作っておけば後は全部 EclipseSubversive が面倒見てくれる。 (あわれ仁吉よ どこへ行く... って喩えが古過ぎか)

以下, 参考文献:

@IT の記事は Trac との連携についても書いてあるので参考になるかも。 私は今のところ Trac は使わない。 本当は使いたいけど, 職場の自マシンでサービス立ち上げるのはさすがにセキュリティ上ヤバいしな。