Subclipse 1.0.3でSubversion 1.4を使う

Subversion 1.4.0リリースにあわせて、TortoiseSVNも1.4対応版がリリースされた。ところが、Subclipseは動きが無い。

これまで何度か書いているが、1.3と.1.4ではWC(ワーキングコピー)のメタデータのフォーマットが変わっているので、1.4で触ったWCは1.3では操作できない。つまり、TortoiseSVN 1.4で触ったWCはSubclipse 1.0.3から操作不能となる。現在の開発では両者を併用しているので、とても困る。

で、1.4対応版のリリースはいつだろう、と調べてみると、Subclipse-usersのログにこんなスレッドが。

http://svn.haxx.se/subusers/archive-2006-09/0126.shtml

スレッドを追ってみると、Subclipseのモジュールはそれぞれ独立しているから、勝手に使いたいライブラリ選んで使え、といったことが書いてある。それでは、1.4系のDLLを突っ込めば動くってことか?

やってみた。

JavaHLの1.4.0ライブラリを落としてきてECLIPSE_HOME/plugins/org.tigris.subversion.javahl.win32_1.0.2/libsvnjavahl-1.dllと置き換える(ECLIPSE_HOMEはEclipseのインストールディレクトリとする)。

SVNインタフェースにJavaSVNを使っている場合は、ECLIPSE_HOME/plugins/org.tigris.subversion.subclipse.core_1.0.3/lib/にあるJavaSVN関連ライブラリを最新のものに置き換えねばならないだろう。ただし、JavaHLを使える環境であれば、あえてJavaSVNを選択する理由は無いので、これは放置してよいはずだ。そんなわけで、こちらは一切検証していない。

SVN_HOME/bin/から、下記のdllをECLIPSE_HOME/plugins/org.tigris.subversion.javahl.win32_1.0.2/にコピーor上書きする(ここでSVN_HOMEはSubversion 1.4のインストールディレクトリとする)。

intl3_svn.dll
libapr.dll
libapriconv.dll
libaprutil.dll
libdb43.dll
libdb44.dll
libeay32.dll
ssleay32.dll

以上で終了。Eclipseを起動して、http://でリポジトリにアクセス、一通り操作してみたが動作不良は無い。svn+ssh://とか大丈夫なのかなぁ?と気になったが、こちらは確認していない。

TortoiseSVN 1.4と併用したいがための対応であったが、うれしい特典が。「リポジトリーの同期化」を始めとした各種操作がかなり高速化されるのだ。1.4リリースはパフォーマンス向上を頑張っているから、その成果が現れているようだ。

イレギュラーなことをしているので、この対応で何か問題を起こしても責任もてないが、覚悟完了した人は試してみよう。

・・・そのうちちゃんと1.4対応Subclipseがリリースされるとは思うけど。



追記

実は、トップページに出てこないだけで、Subclipseは1.1.7までバージョンアップされており、このバージョンからSubversion1.4対応になっているそうである。

http://subclipse.tigris.org/servlets/ProjectNewsList

ただ、1.1.x系列はEclipse3.2向けに作られているので、Eclipse3.1では動かないかもしれない(3.1から3.2の間で大きな変更が起きているため)。その場合、ユーザは上記の手段を取る以外に無いと思われる。

discypusさん、タレコミありがとうございました。