OmniDiff - Rust製の高速・コンテンツ認識型Git difftool
Show HN: OmniDiff – Opensource, super fast, content aware Git difftool, in Rust

OmniDiffは、コード変更の99.95%を差分表示できる堅牢性を備えた、オープンソースのGit difftoolです。25言語をtree-sitterで構造的に解析し、行単位ではなく変更された部分だけを精密にハイライトします。さらにPDFや画像、フォント、アーカイブなどバイナリファイルも内容を理解して差分を可視化。100ms未満で動作する高速性と、ターミナルTUI・ブラウザ・JSON出力・headlessモードなど柔軟な使い方が魅力です。gitやjjとの連携も簡単で、コードレビューの体験を根本から変えてくれます。
GNU diffが行全体を削除・挿入としてマークする一方で、OmniDiffは変更された部分だけを描き出す——sum(numbers)やlen(numbers)を、代入文全体ではなく、移動したものとして示すのです。
HNでの議論
26- bita_nidir
わあ、こういうツールをずっと欲しいと思っていました。ありがとう!
ほとんどの人は大抵クリックして実行するだけなので(何十年もの研究に基づく、n=1)、もっと例を見られるリンクを貼っておきます:https://ivankovic.github.io/omnidiff/showcase/content.html
- nickjj
Deltaにはdiff-so-fancyモードで差分を表示する本当に素晴らしい方法があり、GitHubのUIに似ていて、行が違う色で着色されるだけでなく、文字をハイライトするために異なる色合いが使われます。
以前に書いたスクリーンショットとビデオがここにあります:https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-...
OmniDiffのreadmeとウェブ版では、その方法を見つけられませんでした。
別のコメントで、OmniDiffはDeltaよりずっと優れていると述べ、「差分の約3分の1は大幅に良くなる」と言及していました。これらの例をいくつか提供できますか?Deltaが差分に失敗するのを見たことがありません。
また、DeltaにはArchの公式リポジトリにパッケージがあります。「とにかく動く」体験を求める人にとって、それはかなり大きな利点です。Deltaなら同じパッケージをDebian、Arch、macOSでBrewを使って標準のパッケージマネージャー経由で同じ方法でインストールできます。OmniDiffではインストール方法が3つあります(Debianでは手動のdebパッケージ、Archでは手動のパッケージコンパイル、Macではbrew install)。これらの3つの環境で動作する公開dotfilesを持つ者として、この点だけでもOmniDiffはスキップするでしょう。ちょっと考えてみてください。
- arkenflame
本当によくできていて、とても気に入りました。これまで試した他のツールよりもはるかに最小限の差分を生成します。
difftasticから欠けている機能が1つあります。広いターミナルでは差分を並べて表示し、狭い場合は統合表示にする機能です。