Eclipse(Helios)のPDTでdiffが動かない

昨年くらいからだと思いますけど、Eclipse の最新版(Helios)を使って PHP の編集をしているときにソースの比較を行っても比較結果が表示されない不具合が発生してました。

エラーが出るという訳ではなく、結果が表示されないという感じ。

最初はローカルヒストリーとの比較で起こっていたので、差異が無いのかと思っていたんですが、明らかに違うソースを比較してもブランクページの様な物が出ているので気がつきました。

そのうち Fix されるだろうと思ってましたけど、しばらく待っても更新が出てこなかったので、色々と調べて使えるようになりましたが、未だに PDT のパッケージの最新版を使おうとすると同じ様な問題が発生しているので、対処を書こうと思います。

ちなみに、このバグは既に報告されており、PDT 2.2 では解決しています。
が、Helios のパッケージには古いバージョンの PDT が含まれているのでこの問題が起こっているんでしょうね。

まず、環境ですが私は Pleiades All in One PHP パッケージを使っていて発生しました。

詳細なバージョンは以下の通り。

Eclipse 3.6.1 Helios SR1 Windows 32bit ベース / Pleiades All in One 3.6.1.20101025

ただ、Eclipse 本家のダウンロードページからダウンロードできる Eclipse for PHP Developers のパッケージでも同じ現象が起こっていましたので、Pleiades の問題では無いと思います。

一応本家からダウンロードしたパッケージのファイル名は
eclipse-php-helios-SR1-win32.zip
です。

これらのバージョンでソースの比較を行おうとすると、処理はされているように見えますが、結果が表示されません。

ちなみに、「更新の確認」でアップデートがあるか確認しても何も出てきません。
「新規ソフトウェアのインストール」で見ても、PHP 関連はインストールされているバージョンよりも新しい物は出てきません。


対処法は、PDT のページにも書かれていますが、

pdtのリポジトリーを手動で追加して、

「新規ソフトウェアのインストール」で最新版の PDT の SDK をインストールするだけです。

これだけです。

これで、正常に diff の結果が出てきます。

関係無いかもしれませんが、更新前の PDT では非常に長いソースを見ようとすると Eclipse の応答が無くなる問題が頻発していたのですが、最新版にアップデートしたらその問題も無くなりました。
ソース比較以外にも色々と修正されているかもしれないので、PDT を使っている人はアップデートしておいた方が良いかもしれません。


もし Pleiades を使わないのであれば、PDT のダウンロードページから最新版の PDT を含む All in One パッケージをダウンロードして使うと良いかもしれません。

ただ、Pleiades の All in One は使えるユーティリティーが色々入っているので、Pleiades をベースに PDT だけ最新版にする方がお勧めです。