一度に3ファイル以上の Diff を取りたい
通常の Diff コマンドや Diff ツールだと、2つのファイル間の差分しか表示してくれない。
しかし、「複数のプロジェクトに配置している package.json
の平仄を合わせたい」といった時に、3ファイル以上の Diff を一度に取りたくなるのだ。
例えば package.json
でいえば、「name
プロパティの差分はプロジェクトごとにあって良いが、dependencies
の内容は揃えたい」みたいなチェックをしたく、そのために3ファイル以上の差分を一気に見たいのだ。
今回は3ファイル以上の差分が取れるツールを探してみた。
目次
Windows のみだが Rekisa がダントツ
早速目的に沿ったアプリを見つけた。Rekisa というアプリがそのものズバリな UI だった。
Windows 向けのツールなので、Mac では使えないのが残念。
Mac でも使える風に書いてあるが正しく動かなかった DiffUse
次に見つけたのが、DiffUse というアプリだった。
Windows・Mac・Linux に対応していて、コマンドラインからも呼び出せる風に書かれていたが、手元の MacOS High Sierra で Homebrew よりインストールしてみたところ、文字化けが酷く正常に動作しなかった。
3ファイルまでの差分が取れるツール
今回僕が探しているのは、3ファイル以上の差分比較ができるツールであり、3ファイルまでしか差分比較できないツールは残念ながら対象外だ。
しかし、一応調べた結果としてそれらのアプリの名前だけでも残しておく。
diff3
コマンド$ diff3 file1.txt file2.txt file3.txt
- Mac には標準で入っていたようですぐ使えた
- Beyond Compare
4ファイルまでの差分が取れるツール
次は4ファイルまでの差分が分かるツール。
vimdiff
コマンド$ vimdiff file1.txt file2.txt file3.txt file4.txt
$ vim -d file1.txt …
でも$ vi -d file1.txt …
でも使えた- Vim に付属。Mac では標準で使えた
- 参考 : html - DIFF utility works for 2 files. How to compare more than 2 files at a time? - Stack Overflow
- このレスによると Vim のソースコードを書き換えれば5ファイル以上もできる?っぽいが未検証
- 参考 : html - DIFF utility works for 2 files. How to compare more than 2 files at a time? - Stack Overflow
- 参考 : diff for multiple files - Super User