自分が書いたプログラムを他人が書き換えたときや,自分が過去に書いたコードと最近書いたコードを比較したいときなど,似たような複数のソースコードの違いを確認したいということはプログラマならよくあると思います。このようなときに便利なのが,テキスト比較ツールです。

 UNIXの世界なら,「diff」という有名なツールがあります。二つのテキスト・ファイルの差分を出力するツールです。しかし,このツールはコマンドラインで動作するので,慣れていないと使いにくく,結果を読み取るのも面倒です。

 GUI環境が整ったWindowsなら,複数のテキスト・ファイルの違いをグラフィカルに確認できるツールがいくつかあります。その中で,今回おすすめしたいのが「WinMerge」です。本家のWebサイトでは英語版しかダウンロードできませんが,日本語版もあり,http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.htmlからダウンロードできます。

 ファイルの内容を比較した結果,異なる部分は黄色く表示されます。片方にテキストが存在してもう片方には存在しない場合は,存在しないほうが灰色になります。異なる部分を一つひとつチェックするには,メニュー・バーの下にあるボタンの中から緑色の下向きの矢印をクリックします。ウィンドウの下部にある「Diffペイン」に異なる部分だけが表示されます。

 WinMergeの最新バージョンでは,長い行を折り返して表示する機能が加わりました。同種のほかのツールでは折り返しに対応していない場合が多く,長い行を読むときに横スクロールさせなければなりません。折り返しに対応したWinMergeなら,縦スクロールだけでテキスト全体を見渡せます。

 また,WinMergeは二つのファイルの差分を記した「パッチ」ファイルを出力する機能も備えています。テキスト・エディタでこのファイルを開くと,「13,14c13,14」という行番号を意味する表記に続いて,両方のテキストの異なる部分が記述してあります。UNIXのdiffを使ったことがある方ならおわかりだと思いますが,diffコマンドが出力するパッチ・ファイルと同様の形式です。

 さらに,WinMergeはフォルダ同士の比較もできます。比較したい二つのフォルダを指定すると,フォルダの中にあるファイルを比較します。

 プラグインにより機能を拡張することも可能です。Microsoft WordやExcel,PDFなどのファイルに対応させるプラグインが公開されています。日々の作業の中でちょっとしたファイル修正を行ったときに,あるととても便利なツールです。

図1●WinMergeで二つのソースコードを比較したところ
図1●WinMergeで二つのソースコードを比較したところ。左側のロケーションペインを見ると,差異がある場所を大まかにつかむことができる
[画像のクリックで拡大表示]


WinMerge
ジャンル:テキスト比較ツール
開発:Christian List氏ほか
URL:http://winmerge.org/