Pocket

DiffMergeとは

DiffMergeは、SourceGear社が開発している、無料のGUIのdiffツールです。Windows、MacOS、Linuxに対応しています。

多くのGUI diffツールと同じく、フォルダ同士の比較、ファイル同士の比較ができます。

特に気に入っているわけではありませんが、Joen On Softwareという本で知っていらい、Windows、MacOS、Linuxどれでも使えることもあり、なんとなく使っています。

ファイルの比較

ターミナルのdiffコマンドは、ファイル内容が同じかどうかの確認には、よく使います。でも、どの行が違うかなど差分の詳細を見るには、使いづらいです。

GUI diffツールは、どの行が違うかだけでなく、行の中のどの部分が違うかを強調表示してくれます。

フォルダの比較

放置ブランチとmasterブランチを比較するときに使います。具体的には、放置ブランチを別のフォルダにチェックアウトしておき、masterブランチのフォルダを比較します。削除しても問題ないことを確認してから、放置ブランチを削除します。

かつて日付フォルダ管理だった頃は、diffツールでフォルダ比較していました。最近は、ほとんどのプロジェクトをgit管理するようになったので、日付フォルダをdiffすることはなくなりました。

git difftool

Sourcetreeやgit gui、git diffコマンドの差分表示は、充分わかりやすいです。多くの場合は、これですんでしまいます。

ただし、変更箇所が多かったり、微妙な変更を確認したい場合は、DiffMergeを使うと、確認しやすいです。左側に変更前のファイル全行、右側に変更後のファイル全行が表示されるので、一覧性は抜群にいいです。

DiffMergeをインストールした後、最初の一回だけ、gitのグローバル設定の diff.tool に "diffmerge --nosplash" を登録します。そして、git difftoolと実行します。

インストール

homebrew_cask

homebrew_caskでインストールできます。

公式サイトからダウンロード

sourcegear > Downloads > DiffMerge のページを表示します。

一覧の、「OS X 10.6+ Installer (Intel)」 にチェックをつけて、「Download Now」ボタンをクリックします。画面表示にしたがって、操作してください。

起動方法

デスクトップから起動するときは、Finder > アプリケーション > DiffMerge.app から起動します。

ターミナルから起動するときは、最後に & をつけて、起動します。

日本語設定

インストール直後は、日本語が文字化けしてしまうので、次の設定をします。

メニュー[DiffMerge] > Preferences...

左ペイン > File Windows > Rulesets

Default Ruleset の [Edit...]ボタン

Fallback Caharacter Encoding Optionsの一覧から
Use Named Encoding Below にチェックをつけて

Try Named Character Encodings下の
最初のプルダウンを「Unicode 8 bit (UTF-8) 」に選択して、

[OK]ボタン

それでも、日本語が文字化けするときは、拡張子ごとの設定が優先されているので、拡張子ごとの設定をオフにします。

メニュー[DiffMerge] > Preferences...

左ペイン > File Windows > Rulesets

Custom Rulesetsの下
Enable Custome Rulesetsのチェックをはずします。

[OK]ボタン

DiffMergeを知ったきっかけ

DiffMergeを知ったのは、Joel Spolsky著「Joel on Software」です。続編か続々編だったかもしれません。本の中で、SourceGear社、創業者・開発者のEric Sink、製品のDiffMergeをすすめていました。

そういえば、Eric Sink著「Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方」も読んだことを思い出しました。

Joel Spolsky (著), 青木 靖 (翻訳) オーム社 2005/12