Macのeclipseでsubclipseが動かない

MySQLの環境作ろうとしてたら、JavaHLがいなくなっとるー!!
直すついでに、MacPortsでJavaHLをインストールする手順をまとめとこう。

私は、バージョン管理はsubversion(サブバージョン、以下svnと略)を使っています。
そして、コーディング諸々をする用には、eclipseという統合開発環境を使っています。

バージョン管理や統合開発環境については、また別の機会に掘り下げるとして…
eclipseには、svn使うためsubclipse(サブクリプス?)というプラグインがあり、これでsvnと連携できます。

このsubclipse、会社のMacで使おうとしたらしょっぱなエラーがでました。
インストールする時は順調やったやん!

subclipseのエラー

どうも、subclipse を使うためには JavaHL か Java SVN というのが必須で
eclipse にはデフォルトでWindows用のJavaHLは同梱されているのに、Mac用は入っていないのだとか。

JavaHL か Java SVN、どっちを使うか選ぶには、eclipseの環境設定からSVNの項目をえらびます。

環境設定 > チーム > SVN

あー、「Not active」とおっしゃっている。そりゃ動かないやろねー。

 JavaHLをMacへインストール

JavaHLはバイナリのインストーラがなかったので、また手間がかかった。
Macはこういうの多いわ。気のせいかな。

検索してみると、MacPortsというパッケージ管理システムをつかって導入する方法がたくさん紹介されていた。
まずはMacPortsのインストールからしました。
あ、MacPortsにはXcodeが必要なので、Macに付属のディスクからインストールしておいてください。

subclipseから芋づる式にいろんなものが必要になるな。
こういう作業をしているとXcodeもMacPortsも他の場面でもお世話になる機会が多かったので、面倒だけど準備しといて損はないかなと思います。
脱線しすぎるので、MacPortsとXcodeについて詳しくは、また別の機会に。

MacPortsはターミナルからコマンド入力して使うので
まずはターミナルを起動します。

ターミナルで、MacPortsをつかってJavaHLをインストールするためのコマンドを入力

$ sudo port install subversion-javahlbindings

ログが次々と表示されるので、しばらく待っていたら終了します。

参考サイト:
Mac で Subclipse 起動時のJavaHL エラー回避

ちなみに不具合のほうは…

MySQLの環境作ろうとしてたら、JavaHLがいなくなっとるー!!…はどうなったかというと。

MacPortでJavaHLが動作できる状態かどうか確認するためのコマンドを実行

$ sudo port install subversion-javahlbindings
Password:
--->  Computing dependencies for subversion-javahlbindings
--->  Cleaning subversion-javahlbindings

JavaHLは無事に入ってますね。
さっそくeclipseの環境設定を開いてみたら、またさっきのエラーが…。

エラーダイヤログにあるリンクを開いてみると

…はい。
MySQLのときの「アップデート出来るものを全て更新」コマンド
JavaHLが1.6.xから、最新の1.7.xになったか。

subclipseを1.8.xに更新したら、eclipseのエラーは出なくなったものの
今度は、同期化やコミットなどが一切できない…

SVNStatusSubscriberを同期化中に問題が報告されました。1個のうち0個のリソースは同期化されました。
/【プロジェクト名】の同期化中にエラー発生: Error getting status for resource P/【プロジェクト名】 org.apache.subversion.javahl.ClientException: The working copy needs to be upgraded
svn: Working copy '【プロジェクトのディレクトリまでのパス】' is too old (format 10, created by Subversion 1.6)

Error getting status for resource P/【プロジェクト名】 org.apache.subversion.javahl.ClientException: The working copy needs to be upgraded
svn: Working copy '【プロジェクトのディレクトリまでのパス】' is too old (format 10, created by Subversion 1.6)

org.apache.subversion.javahl.ClientException: The working copy needs to be upgraded
svn: Working copy '【プロジェクトのディレクトリまでのパス】' is too old (format 10, created by Subversion 1.6)

org.apache.subversion.javahl.ClientException: The working copy needs to be upgraded
svn: Working copy '【プロジェクトのディレクトリまでのパス】' is too old (format 10, created by Subversion 1.6)

もしかしてsubversion自体も最新にしといたほうがいいのかな?
更新コマンド実行。

$ sudo port install subversion
Password:
--->  Computing dependencies for subversion
--->  Fetching archive for subversion
--->  Attempting to fetch subversion-1.7.4_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/subversion
--->  Attempting to fetch subversion-1.7.4_0.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/subversion
--->  Installing subversion @1.7.4_0
--->  Deactivating subversion @1.7.4_0+bash_completion
--->  Cleaning subversion
--->  Activating subversion @1.7.4_0
--->  Cleaning subversion

バージョンアップは無事にできたものの、まだ同期化などができない。

あれ?エラーの内容をよく見てみると
svnのソフトウェアが1.6のときローカルディスクへチェックアウトしてきたプロジェクトだから、1.8に更新したsvnのソフトウェアとは適合できないとおっしゃっている?
(最初からよく読めww)

小規模なプロジェクトをチェックアウトしなおしてみたら、的中!
…けっこうな量をチェックアウトし直すな。
とりあえず、無事に解決しました。

関連記事

Pocket