もうひとつのGUI diffツール「Beyond Compare 4」

GUIのdiffツールにはさまざまなものがあり、Gitに特化したSourcetreeなどを別にすれば、非エンジニアも使える高機能な汎用ツールとしてはWinMerge(無償)がよく使われているかと思います。しかし惜しいことにWinMergeはWindowsでしか動作しません😢。


winmergejp.bitbucket.ioより

ここでは、もうひとつの選択肢として、Beyond Compare 4というツールをご紹介します。


scootersoftware.comより

  • 有償だが、30日間無料で使える
    • 期間ではなく、起動した日数の合計なのが地味にありがたいです。
  • Mac/Win/Linuxで使える
  • 日本語化されている

前職で長年使っていましたが、改めて個人的に購入しました💰。diffツールはWebアプリでは実現しづらいので(特にディレクトリのdiff)、お金を払う価値があると思います。

Beyond Compare 4でできること

WinMergeでできることは、一部を除いてひととおりできると思ってよいと思います。

Beyond Compare 4とWinMergeどちらでも使える機能

主なもののみピックアップします。

  • テキスト比較
  • ファイル比較
    • Word
    • Excel
    • PDF
  • ディレクトリ比較とディレクトリ同期
  • 画像比較
  • エクスプローラやFinderに右クリックメニューを追加
  • 3-wayマージ
  • zipされたファイルの比較
    • WinMergeではプラグインが必要
  • レポート機能(HTMLやdiffファイルなど)


Beyond Compare 4独自と思われる機能

  • Mac/Win/Linuxで動く
  • エンコーディングが豊富かつ切り替えが便利(多言語案件向け)
  • マルチセッション
    • テキスト比較やディレクトリ比較のセッションごとにウィンドウを開ける
    • セッションは自動保存される(明示的に保存も可能)
    • 保存されたセッションは次回すぐ開ける
  • 音声ファイル比較

WinMerge独自と思われる機能

  • 画像比較のオーバーレイアニメーション(デモ
  • Excelのビューをビジュアルdiff表示できる(プラグインが必要)
    • (Beyond Compare 4ではシートの文を比較します)


winmergejp.bitbucket.ioより

WinMergeのオーバーレイアニメーション↑はちょっと羨ましいです。BeyondCompare 4を購入したついでに、WinMergeのこうした機能も取り入れて欲しいとフィードバックしたところ乗り気になってくれたので、今後を楽しみにしています☺️。

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コードページを手入力しないといけないようです。それ以外のエンコーディングについてどこまでサポートされているかは使ってみないと何とも言えません。

参考: 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 限定)。

おたより発掘

もうひとつのGUI diffツール「Beyond Compare 4」

WinMergeこんな機能あんの

2019/01/31 09:56

もうひとつのGUI diffツール「Beyond Compare 4」

いま手元にあるWinMerge2.14.0.80+-jp-80、ファイルメニューの下にファイルエンコーディングの項目あってそれぞれのペインのエンコードをドロップダウンリストで変更できますよ

2019/01/31 12:10

以前から薄々感じていましたが、Beyond Compare 4って意外とエンジニアに知られてなかったようですね。

関連記事

Googleスプレッドシートのセル内に画像をぴったり埋め込み表示する方法

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ