Macでグラフィカルにファイルの差分をチェックする方法

パソコン・インターネット

ファイルの差分を取るのに、今まで、emacsのediffを使っていました。emacsのバッファ同士を比較して、差分の確認と修正ができます。

使い方は、次の通りです。

  1. 比較するファイル二つを開く
  2. ESC-x ediff-buffers
  3. Buffer AとBuffer Bを指定
  4. Spaceを押す度に差分個所表示

20120214ediff

赤枠は、個人情報なので、後で追加した部分です。

緑、黄色、グレーで表示されている部分が、差分になります。

初めてこの機能を知った時は、感動でした。

ところが最近、もっとすごい方法を知ったのです。

Mac OS X限定ですけれど、opendiffから呼び出されるFileMerge.appによる比較画面がすごいのです。

次のコマンドで起動します。

$ opendiff yoruho.pl yoruho.pl~

すると、ファイルがasciiじゃないけど、FileMerge.appで開くかと言う、確認ウィンドウが開きます。

20120414opendiff1

構わず、"Proceed anyway"を押すと、FileMerge.appが起動します。

20120214opendiff

差分が一発でわかります。しかも、スクロールするのに合わせて、差分個所も着いてきます。

FileMerge.appは、Xcodeの一部なので、Xcodeをインストールしておく必要があります。

次の所で、簡単に説明されています。ありがとうございます。

更に前の話ですが、sdiffと言うコマンドを知った時も感動的でした。ファイルを左右二つに並べて、行が違う所に、マークが付くのです。

$ sdiff yoruho.pl yoruho.pl~ | less

20120214sdiff

青枠で示した部分に、"|"とか"<"とか">"が付きます。

sdiffは、どんな環境でも使えるので便利です。

(追記 2012-03-13 00:08)

最近のdiffだと、"-y"オプションがあります。

$ diff -y yoruho.pl yoruho.pl~ | less

sdiffと同様の結果が得られます。

Posted by お市のかた