月別アーカイブ: 2010年5月

Eclipse Subversiveプラグインの使い方 編

Eclipse Subversiveプラグイン (CentOS 5.5 64bit) 編」に引き続き、Subversive の簡単な使いかたをまとめてみたいと思います。

1. 事前準備 sampleリポジトリの作成

svn グループに属するユーザで、sampleリポジトリを作成します。
詳細は「Subversionの使い方」を参照してください。

$ cd /var/svn/repos
$ mkdir sample
$ svnadmin create /var/svn/repos/sample
$ chgrp svn sample

trunk、branches、tags ディレクトリを import します。

$ mkdir ~/sample
$ mkdir ~/sample/trunk
$ mkdir ~/sample/branches
$ mkdir ~/sample/tags
$ cd ~/sample
$ svn import svn+ssh://localhost/var/svn/repos/sample/ -m "sample project"

2. リポジトリ設定の登録とチェックアウト

Eclipse の「SVN リポジトリー・エクスプローラー」パースペクティブを開き、「新規」-「リポジトリー・ロケーション」から「新規リポジトリー・ロケーション」画面を開きます。

20100530_01

URL svn+ssh://localhost/var/svn/repos/hello
ラベル sample project
ユーザー SVNサーバのログインユーザID
パスワード SVNサーバのログインパスワード

必要事項を入力し、「完了」ボタンを選択します。
接続設定完了後、「sample project」の「trunk」を選択し、右クリックメニューから「チェックアウト」を選択することで、Eclipse 上に sample プロジェクトが作成されます。(「svn checkout」コマンドに相当)

20100530_02 20100530_03

3. ファイルの追加とコミット

前項で作成したプロジェクト上で必要なプロジェクト設定 (「プロジェクト」-「プロパティー」-「Javaのビルドパス」等) を行った後、リポジトリに追加するソースを作成していきます。
今回の例では、過去のサンプル群を追加しました。

20100530_04

リポジトリに追加するディレクトリ/ファイルを選択し、右クリックメニューから「チーム」-「バージョン管理に追加」を選択すると、「SVN バージョン管理に追加」画面が表示されます。
今回の例では「src」ディレクトリを選択しました。

20100530_05

内容確認後、「OK」ボタンを選択することで該当ファイル群がバージョン管理対象となります。(「svn add」コマンドに相当)

20100530_06

対象ファイルのアイコン右下が「?」から「時計マーク(?)」に変わっています。

続いてリポジトリ管理対象となったファイル群のコミットを行います。
同様に右クリックメニューから「チーム」-「コミット」を選択すると「コミット」画面が表示されます。

20100530_07

コメントを入力後、「OK」ボタン選択でコミットが行われます。(「svn commit」コマンドに相当)

20100530_08

対象ファイルのアイコン右下が「DBマーク(?)」に変わり、リビジョン番号 (右側の数字) が「1」→「2」となっていることでコミット済みであることがわかります。

4. ファイルの変更と差分確認

コミットしたファイルの修正を行い、差分を確認します。
今回は、TestEntity.java に対してフィールド変数の追加とコンストラクタの変更を行いました。

TestEntity.java 変更箇所

     /**
     * Key値。
     */
    private int key;
    /**
     * コンストラクタ。
     * @param value データ
     */
    public TestEntity(String value) {
        this.key = value.hashCode();
        this.value = value;
    }

変更後にファイルの保存を行うと、変更したファイルの左側に「>」が表示されます。

20100530_09

変更したファイルを選択し、右クリックメニューから「比較」-「リポジトリーから最新」を選択すると「差分比較」画面が表示されます。(「svn diff」コマンドに相当)
GUIベースで確認可能なため、コマンドベースに比較して変更箇所がわかりやすいです。

20100530_10

5. チーム同期化 パースペクティブ

リポジトリとプロジェクトで差異のあるファイルをリストアップする場合、「チーム同期化」パースペクティブを使用すると便利です。
プロジェクトを選択し、右クリックメニューから「チーム」-「リポジトリーと同期化」を選択してください。「チーム同期化」パースペクティブが表示されます。

20100530_11

先ほど変更した TestEntity.java に加えて、まだ「SVN バージョン管理に追加」(svn add) を行っていないファイル群もリストアップされます。
この画面からも、差分の確認や個別ファイルごとのコミットに加えてマージ作業も行うことが可能です。

今回は全ファイルをコミットしたいと思います。
プロジェクトを選択し、右クリックメニューから「コミット」を選択します。

20100530_12

「コミット」画面のコンテンツ項目の意味は次の通りです。

  ・「変更」  : 修正を行ったがコミットしていないファイル
  ・「新規」  : バージョン管理に追加していないファイル
  ・「追加済み」: バージョン管理に追加したがコミットしていないファイル

前回と同様、コメントを入力して「OK」ボタン選択で全ファイルのコミットが行われます。

6. コミット内容の確認

「SVN リポジトリー・エクスプローラー」パースペクティブから、現在のリポジトリの状況が確認可能です。
一連の作業で trunk の下にプロジェクト内の全ファイルが登録されたことが確認できます。

20100530_13

[ END ]

Eclipse Subversiveプラグイン (CentOS 5.5 64bit) 編

Subversionの使いかた 」でコマンドベースによるリポジトリのチェックアウトやコミットの方法をまとめました。記事内では書きませんでしたが、コリジョン発生時のマージ等まで手を出すと大変な作業が発生します。

これら作業を容易にしてくれるのが Subversiveプラグイン です。
チェックアウトからソースの修正、コミットまでを Eclipse 上で完結できるため、非常に重宝するプラグインなのですが、CVS を使用するためのプラグインと異なり Subversiveプラグインは Eclipse IDE for Java EE Developers に含まれていないため、別途インストールする必要があります。

Subversiveプラグインも updateサイトを公開しているので、「新規ソフトウェアのインストール」メニューからのインストールをおこないます。
(*) インストールの詳細は「Eclipse プロパティエディタプラグイン (CentOS 5.5 64bit) 編 」の「1. updateの登録」「2. インストール」を参照してください。

1. Subversive SVN チーム プロバイダー のインストール

始めに Subversive SVN チーム プロバイダーをインストールします。
現在は Eclipse に組み込まれたプロジェクトであるため、updateサイトの登録は不要です。

「ヘルプ」-「新規ソフトウェアのインストール」から「Galileo」を選択します。

20100529_01

「コラボレーション」から「Subversive SVN チーム プロバイダー 0.7.8」 をチェックし「次へ」を選択、インストールを最後まで完了させてください。
その後の -clean オプション付再起動を忘れないでください。

2.「Subversive SVN コネクター」のインストール

ライセンスあたりが関係しているためか、「Subversive SVN コネクター」は別の updateサイトからインストールする必要があるのですが、一点注意が必要です。

Widnows環境の Eclipse では updateサイト「http://www.polarion.org/projects/subversive/download/eclipse /2.0/update-site/」からのインストールすれば問題ないのですが、Linux環境の場合、64bit版/32bit版ともに、バージョン の違いからか上記 updateサイトからインストールした SVN コネクターを認識してくれませんでした。

そのため、updateサイトを直接指定せずインストールを行いました。

2.1. コネクターのインストール ウィザードを起動

SVN コネクターがインストールされていない状態で、「ウィンドウ」-「パースペクティブを開く」-「その他」から「SVN リポジトリー・エクスプローラー」を選択します。

20100529_02

すると、自動的に「コネクターのインストール」画面が開きます。

20100529_03

2.2. インストール内容の確認

コネクターのインストール画面で「SVN Kit 1.3.0」を選択し、「完了」ボタンを選択するとインストールが始まります。

20100529_04

インストールを最後まで完了させ、再度 -clean オプション付再起動を行います。

3. 動作確認

「SVN リポジトリー・エクスプローラー」パースペクティブを表示します。

20100529_05

「新規」-「リポジトリー・ロケーション」を選択し、「新規リポジトリー・ロケーション」画面が表示されればインストールは成功です。
(*) もしも「http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/」から SVN コネクターをインストールしていると、ここでエラーとなってしまいます。

20100529_06

ここでは前回作成した helloリポジトリへの接続設定を行っています。

URL svn+ssh://localhost/var/svn/repos/hello
ラベル hello project
ユーザー SVNサーバのログインユーザID
パスワード SVNサーバのログインパスワード

「ラベル」項目と「パスワードの補完」項目の指定は任意です。
他サーバに SVNサーバをインストールしている場合は、「URL」項目の「localhsot」の箇所をサーバのホスト名に変更してください。

「完了」ボタンを選択し、設定内容に問題なければ helloリポジトリへの接続が追加されます。

20100529_07

「trunk」を選択し、右クリックから「チェックアウト」を選択すると、helloリポジトリから新たなプロジェクトが作成されます。

20100529_08

4. 補足

「コネクターのインストール」画面から SVN コネクターをインストールした場合、自動的に updateサイトの登録が行われています。
この時のURLは
  http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/
ではなく
  http://community.polarion.com/projects/subversive/download/eclipse/archive/I20091009-1900/
となっていました。

また、SVN コネクターのバージョンも異なっていました。

4.1. 正常動作したバージョン

SVN コネクター 2.2.1
SVNKit 1.3.0 2.2.1

 20100529_09

4.2 エラーとなったバージョン

SVN コネクター 2.2.2
SVNKit 1.3.2 2.2.2

 20100529_10

[ END ]

Subversionの使い方

Subversionのインストール (CentOS 5.5 64bit) 」に引き続き、Subversion の簡単な使いかたをまとめてみたいと思います。

1. チェックアウト (checkout)

Subversion サーバ内 hello リポジトリの全ファイルを、ローカルの作業ディレクトリである ~/hello に取得します。
(*) 前回に引き続き、Subversion サーバは localhost としています。

$ mkdir ~/hello
$ cd ~/hello
$ svn checkout svn+ssh://localhost/var/svn/repos/hello
[ユーザID]@localhost's password:

svn+ssh プロトコルを使用しているため、Subversion サーバへのログインパスワードが要求されますのでパスワードを入力してください。

A hello/trunk
A hello/branches
A hello/tags
リビジョン 1 をチェックアウトしました。

現時点では「trunk」「branches」「tags」の3つのディレクトリしかありませんのでチェックアウトは短時間で完了します。

結果を確認してみましょう。

$ ls -a hello/
. .. .svn branches tags trunk

(*) 青字はディレクトリです。

「.svn」というディレクトリができています。Subversion 管理情報が格納されているディレクトリで、全ディレクトリ (今回の例だと trunk、branches、tags) に作成されます。

2. ファイルの追加 (add, commit)

trunk 配下に新規ファイル「test.txt」を追加します。

$ cd hello/trunk
$ echo "sample" > test.txt

現時点では test.txt がローカルの作業ディレクトリ上に作成されただけです。
ファイルのステータスを確認するオプション (status) で svn コマンドを実行してみても

$ svn status
? test.txt

?」と表示され、リポジトリは存在を認識していない状態となっています。

svn コマンドを add オプション実行することで、リポジトリの追加対象となります。
ステータス確認の結果も「A」(ADD: 追加) となっています。

$ svn add test.txt
A test.txt
$ svn status
A test.txt

残念ながら、この時点でもまだリポジトリには反映されていません。
svn コマンドを commit オプション実行して、初めてリポジトリに反映 (コミット) されます。

$ svn commit -m "add new file"
[ユーザID]@localhost's password:
追加しています hello/trunk/test.txt
ファイルのデータを送信中です.
リビジョン 2 をコミットしました。

(*) パスワードの入力が必要となります。

3. ファイルの変更 (diff, commit)

今度は、先ほど追加した「test.txt」の内容を変更します。

$ echo "Hello, SVN" > test.txt

前回と同様、commitしない限りリポジトリには反映されません。
ステータスを確認してみます。

$ svn status
M test.txt

M」(MODIFIED: 更新) となっています。

また、diff オプションを使用することで、リポジトリと作業ディレクトリの内容を比較することも可能です。

$ svn diff
Index: test.txt
===================================================================
--- test.txt (リビジョン 2)
+++ test.txt (作業コピー)
@@ -1 +1 @@
-sample
+Hello, SVN.

差分内容に問題内容でしたらコミットします。
手順は「2. ファイルの追加」と同様です。

$ svn commit -m "update test.txt"
[ユーザID]@localhost's password:
送信しています hello/trunk/test.txt
ファイルのデータを送信中です.
リビジョン 3 をコミットしました。

(*) パスワードの入力が必要となります。

4. 他ユーザの変更内容の取り込み (update)

複数ユーザで同一プロジェクトを進めていると、他のユーザが修正したソースを自分の作業ディレクトリに取り込む必要があります。
他のユーザが作成・コミットした「hello/trunk/test2.txt」を取り込みます。
オプションは update を使用します。

$ svn update
[ユーザID]@localhost's password:
A hello/trunk/test2.txt
リビジョン 5 に更新しました。

(*) パスワードの入力が必要となります。
(*) hello/trunk/test2.txt コミット時のリビジョンが4であるため、今回のリビジョンは5となっています。

[ END ]