Eclipse と CVS の連携

はじめに

CVS はバージョン管理システムのひとつで、チームでの開発作業などでその威力を発揮します。これを使うと、ラボでもノートでも自宅マシンでもファイルを共有することができます。ここでは、授業でも標準的に使用されている Eclipse を使った一例を紹介します。

これ以降、SSH クライアントとして PuTTY を使用し、すでにアプリケーションサーバーの SSH サービスが使用できる状態にあるものとします。必要な場合は SSH/SCPの使い方 を事前にお読みください。

CVS を使える状態にする

学校と自宅のように離れた場所から CVS を使うには、ネットワーク上に CVS サーバーが構築されている必要があります。情報科学部のアプリケーションサーバーには CVS がインストールされているので、これを利用することにします。

リポジトリーを作成する

まずはアプリケーションサーバーに接続し、リポジトリーを作成します。作成方法については CVS を参照してください。このとき、作成したリポジトリーのフルパスを pwd コマンドで表示し、メモを取って置いてください。

$ cd ~/cvsroot
$ pwd
/home/std/m04k****/cvsroot

Eclipse の設定をする

暗号通信に使用する秘密鍵の設定をします。Eclipse は OpenSSH 形式の秘密鍵を使用するので、PuTTY 形式の秘密鍵の場合は変換する必要があります。

PuTTYgen を起動し、情報科学部サーバ用として登録した公開鍵とペアになる秘密鍵を読み込んでください。メニューの 変換 - OpenSSH 形式へエクスポート で OpenSSH 形式の秘密鍵を保存してください。

その際に ホームディレクトリ (Windows の場合は C:\Documents and Settings\ユーザー名 など) の ssh というフォルダに id_rsa という名前で保存すると Eclipse が勝手に読み込んでくれるので設定の手間が省けます。

情報科学ラボの場合は U:\.ssh に保存し、次の画面で SSH2 ホーム の項目を変更すると、
Linux やリモートシェルの ssh コマンドからも同じ秘密鍵が使用できるので便利です。

ほかの場所に保存した場合は、Eclipse の設定ダイアログのから チーム -> CVS -> SSH2 接続メソッド を開いて一般 タブの プライベート・キー追加 ボタンで先ほど変換した秘密鍵ファイルを選択するか、SSH2 ホーム を保存した場所に変更してください。

リポジトリを登録する

それでは Eclipse にリポジトリーを登録してみましょう。

ウィンドウ -> パースペクティブを開く -> その他 から CVS リポジトリー・エクスプローラー を選択し OK ボタンをクリックすると画面の構成が変わります。画面左側の CVS リポジトリー ビュー内で右クリックし、新規 -> リポジトリー・ロケーション を選びます。CVS リポジトリーの追加 ダイアログが表示されたら、必要な情報を入力していきます。

項目設定内容
ホストssh.cis.k.hosei.ac.jp
リポジトリー・パス(リポジトリーのフルパス)
ユーザー(ラボと同じもの)
パスワード(空欄)
接続型extssh

入力が完了したら 終了 ボタンをクリックします。CVS リポジトリー ビューに :extssh:アカウント名@ssh.cis.k.hosei.ac.jp:リポジトリのパス が追加されていれば完了です。

Eclipse と CVS の連携

それでは実際に Eclipse から CVS を使ってみましょう。

プロジェクトの登録

とりあえず、手元にあるプロジェクトをリポジトリーに登録してみましょう。

パッケージ・エクスプローラー ビューまたは ナビゲーター ビューで、登録したいプロジェクトを右クリックし チーム -> プロジェクトの共用 から プロジェクトの共用 ダイアログを開きます。最初の画面を見るとわかりますが、ここからリポジトリーを登録することもできます。ここではすでにリポジトリーを追加してあるものとして進めます。 リポジトリーを1つも登録していない状態で共用しようとすると、リポジトリーの追加のダイアログが表示されます。

既存のリポジトリー・ロケーションを使用 にチェックをつけて 次へ をクリックします。

モジュール名を指定します。プロジェクト名をそのまま使うことも、自分で指定することもできます。また、すでに存在するモジュールを指定すると、コミット処理になるので注意してください。

ここでは、プロジェクト名をモジュール名として使用 を選択します。

次の画面では実際に共用するファイルや、特定のファイルを無視するといった指定が可能です。ツールバーのアイコンや、コンテキストメニューから指定してください。ここではすべてのファイルを共用することにします。

ここで 終了 をクリックすると、状況に応じて、変更をコミットするかの質問ダイアログとリポジトリーに追加するかどうかの確認ダイアログが表示されます。よければ はい をクリックしてください。するとコメントを入力するダイアログが表示されます。チームで開発する場合には、適切なコメントが入力されていると他のメンバーとの連絡がスムーズに行えるので、編集者の名前などを入力しておきましょう。

OK ボタンをクリックすると完了です。アイコンが変化しているものがリポジトリーに登録されているプロジェクトです。

リポジトリーからのチェックアウト

すでにリポジトリーにあるプロジェクトを編集するにはチェックアウトする必要があります。

CVS リポジトリー・エクスプローラー パースペクティブを開いて、目的のプロジェクトがあるリポジトリーのツリーを展開します。すると HEADブランチ といった項目が現れます。これらについては、ここでは詳しく解説しませんがチーム開発では便利なものです。HEAD を展開するとリポジトリーに登録されているプロジェクト名が表示されるので、目的のプロジェクトを右クリックして チェックアウト をクリックします。

パッケージ・エクスプローラー ビューまたは ナビゲーター ビューに、選択したプロジェクトが追加されていれば完了です。

プロジェクトのコミット

編集した内容はリポジトリーに反映しないと意味がありません。

コミットしたいファイルやパッケージ、プロジェクトを右クリックして チーム -> コミット を選択します。コメントを入力する画面が表示されるので必要に応じて編集者名などを入力し、OK をクリックします。変更のあったファイルがリポジトリーに転送され、リビジョンがインクリメントされます。

更なる使い方

編集中の内容と比較

Eclipse で CVS を使うと、編集中の内容とリポジトリーの最新、または任意のリビジョンとの変更点を GUI で簡単に比較することができます。

パッケージ・エクスプローラー ビューまたは ナビゲーター ビューを開き、比較したいファイルを右クリックして 次と比較 をクリックします。さらにサブメニューをクリックすると出てくる項目の機能は、以下のとおりです。

コマンド比較対象
HEAD から最新最後にリポジトリにコミットした内容
改訂過去にコミットしたリビジョン

それぞれ選択するといくつかに分かれた比較ウィンドウが表示されます。必要なブロックまたはリビジョンをダブルクリックすると、下の画面に現在の内容と比較対象が表示されます。

内容のロールバック

さらに、変更をロールバックし以前の内容へ戻すことができます。
同じく置換したいファイルを右クリックして置換をクリックしサブメニューを選択します。HEAD から最新 を選択すると自動的に最後にコミットした内容と置き換わります。また、改訂 を選択すると先ほどと同様の画面が表示されます。 右から左にすべての競合変更をコピー ボタンか、任意の変更点を選択し 右から左へ現在の変更をコピー ボタンをクリックし保存するとエディタウィンドウの内容も変更されます。