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

GUIのdiffツールにはさまざまなものがあり、Gitに特化したSourcetreeなどを別にすれば、非エンジニアも使える高機能な汎用ツールとしてはWinMerge(無償)がよく使われているかと思います。しかし惜しいことにWinMergeはWindowsでしか動作しません😢。 winmergejp.bitbucket.ioより ここでは、もうひとつの選択肢として、Beyond Compare 4というツールをご紹介します。 サイト: Download Beyond Compare 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 … Continue reading もうひとつのGUI diffツール「Beyond Compare 4」