Posts Tagged ‘svn:externals’

Debian Lennyで新しいEclipse

3月 10th, 2010 by KUMA | コメントは受け付けていません。 | Filed in 技術メモ

昨日の続きになるのだが、Linux版の開発環境にしているDebian Lennyに付属しているEclipseは3.2でSubclipseのVersionが古くsvn:externalsがうまく動いてくれなかった。
Subclipseだけ新しいものにしようとしても、ライブラリが古いためうまくインストール出来ないと言われてしまった。

そこで仕方なくEclipse3.5をインストールしたら、ガンガン落ちて使い物にならなかったので、Eclipse3.4に切り替え。

日本語パッチを当てて動かそうとしたら、

The Eclipse executable launcher was unable to locate its companion shared library.

という、エラーが出て立ち上がらず。

ここを見て解決。

dropinsディレクトリ(デフォルトでは空)にcdして日本語パックをunzipで展開し、dropins/eclipse/pluginsおよびdropins/eclipse/featuresのディレクトリ構成になるように展開しました。

ありがとうございます。

んでもって、http://subclipse.tigris.org/update_1.6.x/から最新のSubclipseを持ってきてインストール。

そしたらまたトラブルorz

An error occured during provisioning.

Cannot connect to keystore.

JKS

↑なダイアログが出てきてインストールが止まる。

ここを見て解決。ありがとうございます。

JDK1.6が必要とのこと。オラクルからJDK1.6を落としてきて、バイナリを実行。

JDKの切り替えに↓のコマンドを実行する。

# update-alternatives –config java

インストールできたので、SVNにつなごうとしたら、↓のエラーが発生。

Failed to load JavaHL Library.

These are the errors that were encountered:

no libsvnjavahl-1 in java.library.path

no svnjavahl-1 in java.library.path

no svnjavahl in java.library.path

java.library.path = /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/i386::/usr/java/packages/lib/i386:/lib:/usr/lib

SVNの設定でインタフェースをJNIからSVNKitに変更にした。
そしたら、チェックアウトが何時まで経っても終わらねぇ。もうSubclipseは諦めて、Subversiveを利用することにする。

Subclipseをアンインストールし、↓からSubversiveをインストール。クライアントはSVNKitのみを選択。
ここを参考にさせてもらった。

http://download.eclipse.org/technology/subversive/0.7/update-site/

http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/

Eclipse3.2から3.4へのプロジェクトファイルのVersion更新もあるが、SVNからチェックアウトするタイミングでは行わない。これを行うとチェックアウトが終わらなくなる。
先にチェックアウトを完了させてから、プロジェクトファイルの変換を行う。一回固まっても、強制終了させ立ち上げなおすと変換が終わってるみたい。

昨日の件から含めて15時間くらいハマった。その内3割くらいは非力なマシンでVMWare上のEclipseが糞重いせいだがw 長かった・・・

フィルター入力

Tags: , , , ,

SVNでsvn:externalsを使う

3月 9th, 2010 by KUMA | コメントは受け付けていません。 | Filed in 技術メモ

ライブラリにするまでも無いソースを複数のプロジェクトで共有したかったので、SVNでそのような機能がないか探したところ、svn:externals属性をつけることでフォルダ単位(ファイル単位はまだできないっぽい?)で可能とのこと。

これまで使ったことが無かったので手順をメモに残す。

自分のSVNクライアントがTortoiseSVNでsvn:externalsの使い方のマニュアルを読んだが分かりづらかった。仕方がないのでググッたら素晴らしいページを発見。ページが消えると悲しいのでバックアップがてらガッツリ引用。

1. チェックアウト済みのワーキングフォルダのどこかに共有内容を持つことにする。

2. ext_sampleフォルダを右クリックし、コンテキストメニューからプロパティをクリック

3. Subversionタグを選択。

4. 属性ボタンをクリック

5. 新規をクリックして「svn:externals」を選択

6. (ここからが新事実!)引っ張って来たいフォルダを先に書いて、次にそれが格納されるフォルダ名を書く。

例) ^/branch01/module moduleAAA

=> 同じリポジトリのルートは’^/’であらわせます。つまり、リポジトリルートからたどって

/branch01/module

というフォルダを

ext_sample

以下の

moduleAAA

にコピーするということ。

既に引用の域を超えてる気がしますが許してください。どうもありがとうございます。

あと、参照元のパスの指定方法には複数の方法があるみたい。

  • 自身のリポジトリルートを指定する場合

^/hoge

  • 自身のリポジトリの親ディレクトリを指定する場合

../huge

  • 外部のリポジトリ指定をする場合、プロトコルに依存させない

//exsample.com/hoge/

  • 外部のリポジトリ指定をする場合、単純なフルパス

http://exsample.com/hoge/

— 2010/03/10 追記 —

↑の方法だと、チェックアウトしたところにしか参照が反映されないため、リポジトリブラウザでこの属性を指定してやると、全てに反映される。

Tags: , ,