もともとプログラマー用の差分確認ツールとして開発されたWinMergeですが、その使い勝手の良さからインフラエンジニアであるわたしの周囲でもよく使われているツールとなっています。
インストール方法
ダウンロード
WinMerge 日本語版のサイトからダウンロードします。

利用しているPCの環境に合わせて「32bit版ダウンロード」「64bit版ダウンロード」からインストーラーをダウンロードします。
通常は64bit版で問題ありません。
インストーラーを実行する
「WinMerge-X.Y.Z-jp-X-x64-Setup.exe」というファル名(X.Y.Zの箇所はバージョン)でダウンロードされているので、それをダブルクリックして実行します。
ダブルクリックするとライセンス画面が表示されるので「次へ」をクリックします。

ライセンス画面で次へをクリックするとコンポーネントの選択画面が表示されますが、基本的にこのままで問題ありません。日本語版をダウンロードしていれば、以下のスクリーンショットのように「Japanese menus and dialogs」にチェックが入っています。このまま「次へ」をクリックします。

追加タスクの選択では「システム環境変数PATHへWinMergeのフォルダを追加する」にチェックを入れておくとコマンドでWinMergeを呼び出すことができるので、わたしはチェックを入れています。

セットアップの最終画面確認画面です。問題なければ「インストール」をクリックします。

セットアップ画面が表示されるので「次へ」をクリックします。

さいごに「完了」ボタンをクリックしてインストールを完了します。

WinMergeの設定
厳密な差分確認をおこないたい場合は設定の変更は必要ありません。
ただし場合によっては比較設定の変更が必要となる場合があります。比較対象の体裁はどうでもよくて内容の比較を重視する場合などです。
わたしはインフラエンジニアなのでサーバーやネットワーク機器のコンフィグを比較することが多いのですが、コンフィグというのは空白の数や空行の有無というものが大きな意味を持つことは少なく、また改行コードの違いも比較は不要です。
ログやコンフィグを取得する担当者が異なると、人によってファイル保存時の改行コードが異なったり行末に空白が入ることがあります。
そこでわたしは、これらの比較を無視する設定をしています。
まず[編集] – [設定]をクリックします。

カテゴリの「比較」から「一般」を選択して以下の設定を行います。
- 「空白」から「変更を無視」を選択
- 空行を無視するにチェック
- 改行文字の違いを無視するにチェック
- 類似行をマッチさせるにチェック

便利な機能
わたしがWinMergeを気に入っているのは以下のような機能を備えているためです。
- エクセルファイルの比較
- フォルダ比較
- レポート機能
エクセルファイルの比較
以前は別途プラグインのインストールが必要でしたが最新バージョンではエクセルファイルの比較機能がデフォルトで組み込まれています。
以下のようなファイルを比較すると結果はどうなるでしょうか。
- 1行目 – 文字列が異なる
- 3行目 – ファイルBが太字
- 5行目 – フォントが異なる
- 7行目 – フォントサイズが異なる

エクセルファイルをWinMergeで比較すると次のような画面になるかも知れません。

このような場合は「プラグイン」から「展開プラグインで開く」をクリックします。

そして展開プラグインの選択画面で以下のように「CompareMSExcelFiles.sct」を選択してOKボタンをクリックします。

これでエクセルファイルの比較ができるようになります。以下のように文字列の変更があった場合に差分を検出できます。

フォルダ比較
フォルダ比較をすると新規に作成されたファイルの有無、削除されたファイルの有無、差分のあるファイルの一覧の有無が簡単にわかります。
この機能はとても便利で、わたしはBIG-IPのバージョンアップ前後に取得したUCSファイルを展開し、フォルダ比較して差分比較することが多いです。
フォルダ比較については以下の記事をご覧ください。

レポート機能
わたしがWinMergeを特に気に入っているのは、このレポート機能があるためです。レポート機能を使うと比較結果をHTMLファイルとして残すことができるので差分結果を簡単に共有できます。
ファイル単位だけでなくフォルダ単位での比較結果もレポート機能で出力でき、とても便利です。
レポート機能については以下の記事をご覧ください。
