Eclipse には、変更管理機能が利用できるように最初から CVS (Concurrent Versions System) が堅固に統合されています。一方、多くのプロジェクトでは、特に Apache Software Foundation が運営するプロジェクトでは、Subversion という、異なる変更管理システムが使われています。Subversion リポジトリーを使用するプロジェクトで Eclipse を使用する方法を学びましょう。

Chris Herborth, Freelance, Freelance Writer

Photo of Chris HerborthChris Herborth は、数々の賞を受賞したテクニカル・ライターであり、オペレーティング・システムやプログラミングに関する執筆に 10 年以上携わっています。彼は息子の Alex と遊んでいる時や妻の Lynette と時間を過ごしている時以外は、ビデオ・ゲームの設計やプログラミング、そして研究 (つまりゲームで遊ぶこと) を行っています。



2006年 7月 11日

Eclipse のインストールには、オープンソースの変更管理システムとして一般的な CVS のサポートが統合されています。CVS の持つ機能と限界はよく知られていますが、多くのグループがこれまで、スケーラブルで変更マージやバージョン分岐をうまく処理でき、またバイナリのファイル・フォーマットを適切にサポートできる、他のバージョン管理システムの可能性を検討してきました。

SVN (Subversion) は CVS に替わるものとして人気があり、(インテリジェントなローカル・キャッシュとデータベース・バックエンドのおかげで) パフォーマンスが改善されています。また容易で高速な分岐が可能であり、多くの人が CVS を使う上で突き当たりがちな、あらゆる問題点への答えを提供しています。

Eclipse に Subversion のサポートを追加する方法について、また基本的なバージョン管理を IDE で行う方法について学びましょう。

始める前に

この記事を読むためには、Eclipse をダウンロードしてインストールする必要があります (参考文献を見てください)。自分のプラットフォーム用の Eclipse SDK パッケージをダウンロードすると、ベースとなる Eclipse IDE (Eclipse Platform と呼ばれています) と、Java™ 開発キットを入手できます。もし C/C++ で作業したいと思っている方は (私がまさにそうです) 、CDT (C Development Tooling) の Web サイトに行き、アップデート・マネージャーを使って CDT をインストールしてください (アップデート・マネージャーの使い方は次のセクションで説明します)。

また、Subversion のリポジトリーにもアクセスする必要があります。もし皆さんがこれをセットアップする場合には、Subversion の Web サイト (参考文献を見てください) に素晴らしいドキュメンテーションが用意されています。この記事では、実例を用いて Subclipse プロジェクトをチェックアウトする方法と、また私の LAN 上にあるリポジトリーの中のプロジェクトを扱う方法について説明します。


Eclipse に Subclipse を追加する

Subclipse は、Eclipse IDE に Subversion のサポートを追加するためのプロジェクトです。ここでは Eclipse のアップデート・マネージャーを使って、私たちの Eclipse IDE に Subclipse を追加します。Eclipse の Help メニューから Software Updates > Find and Install を選択して、アップデート・マネージャーを開きます。

図 1. Eclipse のアップデート・マネージャー
図 1. Eclipse のアップデート・マネージャー

アップデート・マネージャーは、ソフトウェアのアップデートを探すため以外にも、Subclipse のような新しいフィーチャーを見つけてインストールするために使うこともできます。Search for new features to install が選択されていることを確認してから、Next をクリックして続けます。そうすると Eclipse は、次のアップデート・マネージャー・パネルを表示します。

図 2. アップデート・マネージャー・サイト
図 2. アップデート・マネージャー・サイト

ここでは、ある特定なフィーチャーを探しているので、既存のサイトのチェックを外し、次に New Remote Site をクリックして New Update Site のダイアログを表示します (図 3)。これを使って Subclipse アップデート・サイトをリストに追加します。

図 3. 新しいアップデート・サイトを追加する
図 3. 新しいアップデート・サイトを追加する

Name に適当な名前を入力し (Subclipse で十分です) 、URL に http://subclipse.tigris.org/update_1.0.x (現在の Subclipse アップデート・サイト) を入力します。OK をクリックし、アップデート・マネージャーのリストに Subclipse アップデート・サイトを追加します。

アップデート・マネージャーのウィンドウで Finish をクリックし、新しいフィーチャーの検索を開始します。この場合、検索対象の新しいフィーチャーは Subclipse です。しばらくするとアップデート・マネージャーが検索を完了し、検索結果を表示します。

図 4. インストール可能な新しいフィーチャー
図 4. インストール可能な新しいフィーチャー

Subclipse をチェックし (詳細表示用の三角をクリックすると、このフィーチャーに実際に含まれているものを見ることができます) 、次に Next をクリックすると、このフィーチャーのライセンス条件が表示されます。この条件を受け入れ、Next をクリックすると、インストールしようと選択したフィーチャー群を見ることができます。Finish をクリックし、Subclipse をダウンロードしてインストールします。

アップデート・マネージャーは Subversion のコンポーネントをダウンロードします。何かをインストールしようとすると、Eclipse は、このフィーチャーがデジタル署名されていないと警告します (図 5)。インストールをキャンセルする場合は、これが最後の機会です。Install All をクリックしてインストールを続けます。

図 5. Subclipse がデジタル署名されていません
図 5. Subclipse がデジタル署名されていません

Subversion がインストールされると、Eclipse は、新しいフィーチャーをアクティブにするために IDE を再起動する必要があるかもしれないと警告します (図 6)。念のため、Eclipse を再起動します。

図 6. 新しいフィーチャーのインストール後、Eclipse を再起動する
図 6. 新しいフィーチャーのインストール後、Eclipse を再起動する

Eclipse が再起動されたら、Subclipse はインストール済みであり、準備完了です。

Eclipse を Mac OS X や Linux® 上で実行している場合には、JavaHL ライブラリーをインストールする必要があります。これについては、Subclipse の FAQ (参考文献を見てください) の Troubleshooting セクションに説明されています。Subclipse を使おうとする前に、まずこれを行います。

簡単なテスト

毎度のことですが、新しいフィーチャーのインストールが終わったら、テストをするのが賢明です。Subclipse が適切にインストールされたことを確認するために、Subclipse のコピーを Subversion リポジトリーからチェックアウトします。

Eclipse の File メニューから Import を選択し、インポート・マネージャーを表示します (図 7)。Checkout Projects from SVN を選択し、次に Next をクリックします。

訳注: 原文では Checkout Projects のみが Bold になっていますが、図 7 では「Checkout Projects from SVN」という語句があるので、「Checkout Projects from SVN を選択し」としています。Bold にする対象を「Checkout Projects from SVN」にするのが適切と思われます。

図 7. インポート・マネージャー
図 7. インポート・マネージャー

Select/Create Location パネル (図 8) 上に、新しい場所を作成する必要があります (まだ何も構成していないため)。そこで Next をクリックして続けます。もし Next ボタンが使用不可になっていたら、Use existing repository location オプションに切り替え、次に Create a new repository location に戻って Next ボタンを使用可能にします。

図 8. 新しいリポジトリーの場所を作成する
図 8. 新しいリポジトリーの場所を作成する

次のセクション (図 9) で Url フィールドにリポジトリーの URL (http://subclipse.tigris.org/svn/subclipse/) を追加し、次に Next をクリックします。しばらくすると、Eclipse がユーザーID とパスワードを要求してきます。Subclipse サイトにアカウントを持っていない場合には、ユーザーID に guest、パスワードにスペースを入力し、Save Password ボックスをチェックした後、OK をクリックします。

図 9. リポジトリーURL を追加する
図 9. リポジトリーURL を追加する

Eclipse は、Subclipse リポジトリーにフォルダーを表示します (図 10)。trunk を展開して subclipse フォルダーを選択し、次に Finish をクリックして、皆さん独自の、Subclipse プロジェクトのソースコードのコピーをチェックアウトします。皆さんにはこれが何かは分からないので、New Project のウィザードに指示されたら Simple > Project を選択します。

図 10. Subclipse リポジトリー
図 10. Subclipse リポジトリー

Subversion の基本的な操作

この時点で、Subclipse は無事インストールできたことになります。つまり Eclipse セットアップに Subversion サーバーのサポートが追加され、またリポジトリーから現在の Subclipse ソースコードをダウンロードすることで Subclipse をテストしました。今度は、私たち独自のコードと独自の Subversion リポジトリーを使って、何かをすることを考えましょう。

Subversion で何がどう動くのかを説明する前に、私のリポジトリーについて少し説明しましょう。このリポジトリーは、dogma というマシン上のポート 8000にホストされています。また私は、これまで私が developerWorks に執筆した記事と関係のあるコードのために、新たに developerWorks というリポジトリーを作成しました。私のプロジェクトを、このリポジトリーのルートに直接置くことにします。通常、他のリポジトリーは、開発バージョンやタグ、分岐などのために、trunk や tags、branches など、ルートとの関係を示す名前の付いたフォルダーを持っています。しかし developerWorks の記事のコードに関しては、タグや分岐を気にする必要はないでしょう。

私は、私が最初に developerWorks に書いた記事からの、forkWork と threadWork という 2 つのプロジェクトを追加しました。私の Eclipse ワークスペース (図 11) には他にも、developerWorks に関する記事からの 3 つのプロジェクト (getopt_demo と getopt_long_demo と readdir_demo) が含まれています。

図 11. 私の Eclipse C/C++ プロジェクト
図 11. 私の Eclipse C/C++ プロジェクト

これで、作業の準備が整いました。

リポジトリーにプロジェクトを追加する

Subversion リポジトリーに新しいプロジェクトを追加するには、(Eclipse のプロジェクト・ビューのどれかの中で、または Navigator ビューの中で) そのプロジェクトを右クリックし、次にメニューから Team > Share Project を選択します。Eclipse は Share Project ダイアログを表示します。

図 12. Share Project ダイアログ
図 12. Share Project ダイアログ

自分の Eclipse が現在サポートしているリポジトリーのリストから SVN を選択し、次に Next をクリックします。次のダイアログ (図 13) では、既存のリポジトリーの場所を選択したり、新しいリポジトリーを作成したりすることができます。

図 13. リポジトリーの場所を選択する
図 13. リポジトリーの場所を選択する

自分のリポジトリーが既にリストされていたら (ご覧の通り、私は自分のリポジトリーを追加してあります) 、それを選択し、そして Finish をクリックします。もしリストされていなかったら、それを追加し (先ほど説明した、簡単なテスト、を見てください) 、その後を続けます。Eclipse は、プロジェクトと同じ名前を持った新しいディレクトリーをリポジトリーの中に作成し、そのプロジェクトの中にある全てのファイルとフォルダーのリストを表示します。

図 14. プロジェクトの内容を追加する
図 14. プロジェクトの内容を追加する

先頭のフィールドに、このプロジェクトを説明すsる適当なコメントを入力し、次に Select All をクリックして、プロジェクトの全ファイルをチェックします。OK をクリックしてプロジェクトをチェックインし、現在の状態を Subversion リポジトリーに送信します。

Subversion のコマンドと出力は、Console ビュー (通常、Eclipse ウィンドウの一番下にあります) に表示されます。これを見ると、Subversion がプロジェクトに対して具体的に何をしたのかを見ることができます。

プロジェクトをアップデートする

バージョン管理システムの重要な機能として、他の開発者が開発を続行できること、また、他の開発者がいつでも変更をコミットできることがあげられます。こうした変更をダウンロードし、ローカル・コピーと統合するためには、プロジェクトをアップデートする必要があります。

アップデートしたいプロジェクトの上で右クリックし、次にメニューから Team > Update を選択します。Eclipse はリポジトリーから全ての変更を取得し、それらの変更をローカル・コピーとマージしようとします。

ファイルやディレクトリーを追加する

ファイルの追加は自動的にバージョン管理の一部となっているわけではないので、プロジェクトにファイルを追加する場合 (図 15) には、そのファイルを明示的にリポジトリーに追加する必要があります。このスクリーンショットは、threadWork プロジェクトに ReadMe.txt ファイルを追加したところを示しています。

図 15. 新しいファイルを追加する
図 15. 新しいファイルを追加する

新しいファイルを右クリックし、次に Team > Add to Version Control を選択します。たったそれだけで終わりです。次回、皆さんがこのプロジェクトで変更したものをリポジトリーにコミットすると、この新しいファイルもチェックインされるようになります。

ファイルやディレクトリーを削除する

リポジトリーに追加したファイルがプロジェクトに関係なくなってしまった場合には、簡単に削除することができます。そのファイルを右クリックし、次に Delete を選択します。メニューから Team を選択する必要はなく、Subclipse は削除するファイルに対して自動的にフラグを立て、そしてそのファイルをプロジェクトから削除します。次回、リポジトリーに変更をコミットすると、そのファイルは削除されます。

ファイルやディレクトリーをリネームする

Subclipse のコントロールの下でファイルやディレクトリーをリネームするには、そのファイルまたはディレクトリーを右クリックし、次に Rename を選択します。そのアイテムの新しい名前を入力フィールドの中にタイプし、Enter をクリックします。そのファイルはプロジェクトの中でリネームされ、リネーム操作 (新しい名前に対する Add と、古い名前に対する Delete) は、次回のコミットに向けてキューに置かれます。図 16 に示す threadWork プロジェクトは、main.c を threadWork.c とリネームした後のものですが、まだ変更はコミットされていません。小さな青いプラス記号は、Subclipse が「新しい」ファイルに追加した記号で、このファイルが次回のコミットで追加されるようにスケジュールされていることを示しています。

図 16. ファイルのリネームは (追加と削除によるものですが) アトミックです
図 16. ファイルのリネームは (追加と削除によるものですが) アトミックです

ファイルを無視する

そのプロジェクトがファイルを生成する場合や、皆さんが Subversion リポジトリーにチェックインしたくないファイルがプロジェクトに含まれている場合には、Subclipse にそれらを無視させることができます。バージョン管理から排除したいファイルまたはディレクトリーを右クリックし、次に Team > Add to svn:ignore を選択して Add to svn:ignore ダイアログを表示します。

図 17. バージョン管理に含まれないリソースを無視する
図 17. バージョン管理に含まれないリソースを無視する

OK をクリックして、このファイルをプロジェクトのディレクトリーの svn:ignore プロパティーに追加します。Wildcard extension を選択し、現在のファイルの拡張子と同じ拡張子を持つ全ファイルを無視します。あるいは Custom pattern を選択して、独自のワイルドカードを ignore リストに追加します。こうした、ignore リストへの変更は、次回に変更をコミットする際にリポジトリーに追加されます。

変更をコミットする

プロジェクトに対する変更に満足でき、コードがコンパイルできることを確認し、そして変更をテストしたら、それらの変更を Subversion リポジトリーにコミットします。これはワークステーションが壊れた場合のバックアップにもなり、またこれによって他の開発者は、皆さんが行った変更を自分たちのローカル・コピーに含めるようにアップデートすることができます。

変更のコミットを行う前に、必ずプロジェクトをアップデートします (「プロジェクトをアップデートする」を見てください)。そのプロジェクトを右クリックし、メニューから Team > Commit を選択します。Eclipse は変更を要約した Commit ダイアログを表示します (図 18)。

図 18. 変更をリポジトリーにコミットする
図 18. 変更をリポジトリーにコミットする

注意して見ると、プロジェクトのディレクトリーのプロパティーが変更されていること (一部のファイルをリポジトリーから排除するために、私は svn:ignore プロパティーに追加を行いました) 、また main.c が削除され、threadWork.c が追加されていることが分かります。この一組の変更は、実際には 1 つの操作 (ファイルのリネーム) を表しています。

この時点になると、あるリソースをリポジトリーから排除しておきたい場合には、そのリソースを選択解除することができます。これは、あるファイルで部分的に作業を完了したものの、不完全な変更をチェックインしたくないような場合に便利です。先頭のテキスト・フィールドに適当なコメントを入力し、次に OK をクリックして、リポジトリーに変更をチェックインします。


まとめ

Subclipse プロジェクトは、Subversion バージョン管理システムを Eclipse の持つ優れたチーム・プロジェクト管理機能 (そのままでは CVS サーバーしかサポートしません) と統合します。また Eclipse のアップデート・マネージャーを使うと、Eclipse インストールに Subclipse を容易に追加することができ、その結果、この素晴らしいバージョン管理システム (少なくとも私の意見では非常に素晴らしいと思います) を Eclipse から直接使うことができます。

リポジトリーにプロジェクトを追加し、追加できたらプロジェクトのリソースを管理する、という作業は、Subversion に慣れていない人には非常に困難に思えるかも知れませんが、一般的な操作の手順はごく単純です。この記事では、Subclipse に慣れるための日常的な操作について、順を追って説明しました。

参考文献

学ぶために

製品や技術を入手するために

議論するために

  • Eclipse newsgroups home には、Eclipse の利用や拡張に関心を持つ人達のために、豊富なリソースが用意されています。
  • developerWorks blogs から developerWorks のコミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=236858
ArticleTitle=Eclipse で Subversion を使う
publish-date=07112006