GUIのdiffツールにはさまざまなものがあり、Gitに特化したSourcetreeなどを別にすれば、非エンジニアも使える高機能な汎用ツールとしてはWinMerge(無償)がよく使われているかと思います。しかし惜しいことにWinMergeはWindowsでしか動作しません😢。
ここでは、もうひとつの選択肢として、Beyond Compare 4というツールをご紹介します。
- 有償だが、30日間無料で使える
- 期間ではなく、起動した日数の合計なのが地味にありがたいです。
- Mac/Win/Linuxで使える
- UIが日本語化されている
前職で長年使っていましたが、改めて個人的に購入しました💰。diffツールはWebアプリでは実現しづらいので(特にディレクトリのdiff)、お金を払う価値があると思います。
Beyond Compare 4でできること
WinMergeでできることは、一部を除いてひととおりできると思ってよいと思います。
Beyond Compare 4とWinMergeどちらでも使える機能
主なもののみピックアップします。
- テキスト比較
- ファイル比較
- Word
- Excel
- ディレクトリ比較とディレクトリ同期
- 画像比較
- エクスプローラやFinderに右クリックメニューを追加
- 3-wayマージ
- zipされたファイルの比較
- WinMergeではプラグインが必要
- レポート機能(HTMLやdiffファイルなど)
Beyond Compare 4独自と思われる機能
- Mac/Win/Linuxで動く
- エンコーディングが豊富かつ切り替えが便利(多言語案件向け)
- マルチセッション
- テキスト比較やディレクトリ比較のセッションごとにウィンドウを開ける
- セッションは自動保存される(明示的に保存も可能)
- 保存されたセッションは次回すぐ開ける
- 音声ファイル比較
WinMerge独自と思われる機能
- 画像比較のオーバーレイアニメーション(デモ)
- Excelのビューをビジュアルdiff表示できる(プラグインが必要)
- (Beyond Compare 4ではシートの文を比較します)
WinMergeのオーバーレイアニメーション↑はちょっと羨ましいです。BeyondCompare 4を購入したついでに、WinMergeのこうした機能も取り入れて欲しいとフィードバックしたところ乗り気になってくれたので、今後を楽しみにしています☺️。
追記(2021/03/18): 現時点ではオーバーレイアニメーションはまだ導入されていません。
Beyond Compare 4設定のコツ
さしあたって設定 > 比較の以下を調整するとよいでしょう。
- 「内容を比較する」を「ルールに基づく比較」にする
- テキスト、画像ともにこれでだいたいまかなえます
- 「タイムスタンプを比較」をオフにする
- Gitと同様にタイムスタンプを無視して比較したい場合
Beyond Compare 4の使い所
Beyond Compare 4、WinMergeともに、インストールするだけで使えるようになるので、Webデザイナーなどの非エンジニアが使う場合や、急いで使いたい場合に向いています。
Windowsユーザーで既にWinMergeに慣れている人であれば、Beyond Compare 4に乗り換えるほどではないかもしれませんが、複数OSでツールをまとめ買いするときには選択肢に入れてよいと思います。
1. ディレクトリ・ファイル比較
Finderやエクスプローラ上でディレクトリ同士を比較できます。納品物が指定通りのディレクトリ構成かどうかのチェックなどに便利です。zipされていてもそのまま比較できます。
上のようにFinderのコンテキストメニューで「サービス > ファイルを比較」をクリックすると、以下のようにディレクトリとファイルの差分が表示されます。「比較の左のフォルダに選択」などで1つずつ選択もできます。
2. 画像の比較(特にMac/Linuxで)
たとえばWebアプリのテストで、表示結果を自動的にスクリーンショットにしてディレクトリに保存している場合、Beyond Compare 4やWinMergeを使ってディレクトリごと差分を出すことで、たとえばCSSの変更が思わぬページに影響を与えているなどを手軽に検出できます。
2. ExcelやWordファイルのdiff
ぱっと見にわかりにくいExcelファイルのテキスト差分を、以下のようにあぶり出せます。xlsxはもちろん、バイナリのxlsファイルも比較できます。
3. 多言語テキストのエンコーディング切り替え
Beyond Compare 4はエンコーディングの指定が豊富なので、多言語ファイルを比較したい場合にきわめて有用です。比較の左と右それぞれのエンコーディングをその場で変えられるというのは得難いメリットです。
実際、キリル文字のエンコーディングが豊富なおかげで助けられたことがありました(当時他のどんなツールでも文字化けしてしまった)。
エンコーディングを比較画面のドロップダウンで即切り替えられるのは特にありがたい点です。
Beyond CompareのUIでは「ロケール」、WinMergeのUIでは「コードページ」と表記されていますが、「エンコーディング」の方が意図に近いと思われるので、本記事では両者ともに「エンコーディング」と表記することにします。
「Windowsでは多くの場合エンコーディングを(Microsoft)コードページで指定する」というのが実情に近いと思われます。
Beyond Compare 4のエンコーディングリスト
せっかくなのでリストにします。
- Unicode
- UTF-8、UTF-16LE、UTF-16BE
- アラビア語
- DOS、ISO、Windows
- バルト語
- ISO、Windows
- 中欧
- DOS、ISO、Windows
- 簡体字中国語
- GB18030、HZ
- 繁体字中国語
- Big5
- キリル語
- DOS、ISO、KOI8-R、KOI8-U、Windows
- ギリシャ語
- ISO、Windows
- ヘブライ語
- DOS、ISO-Visual、Windows
- 日本語
- EUC、Shift_JIS
- 韓国語
- (表記なし)
- タイ語
- Windows
- トルコ語
- ISO、Windows
- ベトナム語
- Windows
- 西欧
- ISO、Windows
参考: WinMergeの場合
WinMergeのデフォルトはShift_JISです。
以下の記事によると、WinMergeでのエンコーディングの切り替えには設定ダイアログを開いてMicrosoftコードページを手入力しないといけないようです(注: 以下のブクマによるとドロップダウンでできるそうです↓)。それ以外のエンコーディングについてどこまでサポートされているかは使ってみないと何とも言えません。
もうひとつのGUI diffツール「Beyond Compare 4」
いま手元にあるWinMerge2.14.0.80+-jp-80、ファイルメニューの下にファイルエンコーディングの項目あってそれぞれのペインのエンコードをドロップダウンリストで変更できますよ
参考: Application/WinMerge/tips/文字コードがUTF-8のファイルを比較したい - 豚吐露@wiki - アットウィキ
参考: Code Page Identifiers - Windows applications | Microsoft Docs
おまけ: Beyond Compare 4とGit
Beyond Compare 4はある時期から3-wayマージをサポートするようになり、Gitのdiffツールとしても使えるようにはなっているようです。
ただGit向けの設定が少々面倒そうなのと、今使っている別のgit向けGUI diffから乗り換えるほどではなさそうなので、まだ試していません。
参考: Using Beyond Compare with Version Control Systems under OS X -- Beyond Compare Technical Support
おまけ2: ファイルサーバーなどとの高速ディレクトリ同期
Beyond Compare 4のちょっと変わった使い方として、ファイルサーバーから/への高速ディレクトリコピーやディレクトリ同期があります。
Finderで大量のファイルをコピーするとファイル数のカウントなどで結構待たされますが、Beyond Compare 4によるディレクトリのコピー/同期はFinderよりずっと高速です。
コマンドプロンプトでscp
を普段使いしているエンジニアには無用かと思いますが、コマンドプロンプトを立ち上げるのが億劫な方はどうぞ。
追記(2019/08/09)
XMLやPHPなど、デフォルト以外のファイル形式については以下から追加できます(Beyond Compare4 限定)。
追記(2021/03/18)
- Beyond Compare 4.3.7はBig Surに対応済みです。
- Apple M1チップのMacではRosetta 2経由で実行可能、M1版は目下開発中とのことです。
Beyond Compare 4.3.7 is an Intel CPU application, but will run on ARM CPU (Apple M1) Macs via Rosetta 2 translation. An ARM CPU version is in development.
— Scooter Software (@ScooterSoftware) November 13, 2020
- Windows版では「レジストリ比較機能」「実行ファイル(exeやdllなど)同士のバージョン比較機能」もあるそうです。
参考: Specialized Viewers: Scooter Software: Home of Beyond Compare
Beyond Compare, the Beyond Compare Logo, and the phrase "Reconcile Your Differences!" are trademarks of Scooter Software Inc.
おたより発掘
もうひとつのGUI diffツール「Beyond Compare 4」
WinMergeこんな機能あんの
以前から薄々感じていましたが、Beyond Compare 4って意外とエンジニアに知られてなかったようですね。
A nice Japanese language overview of Beyond Compare by one of our customers. https://t.co/EaL8Yo5zJj
— Scooter Software (@ScooterSoftware) January 30, 2019
更新情報