
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と実行します。
$ git config --global --add diff.tool "diffmerge --nosplash"
$ git difftool
Code language: PHP (php)
インストール
homebrew_cask
homebrew_caskでインストールできます。
$ brew cask install diffmerge
公式サイトからダウンロード
sourcegear > Downloads > DiffMerge のページを表示します。
一覧の、「OS X 10.6+ Installer (Intel)」 にチェックをつけて、「Download Now」ボタンをクリックします。画面表示にしたがって、操作してください。
起動方法
デスクトップから起動するときは、Finder > アプリケーション > DiffMerge.app から起動します。
ターミナルから起動するときは、最後に & をつけて、起動します。
$ diffmerge &
# スプラッシュ画面を表示しないで起動する
$ diffmerge --nosplash &
Code language: PHP (php)
日本語設定
インストール直後は、日本語が文字化けしてしまうので、次の設定をします。
メニュー[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 革新的ソフトウェア企業の作り方」も読んだことを思い出しました。
