AMAZINGINDEX.COM 每天一点 Amazing
55.8
VOL. 2026.11
2026.11.02
← 返回 2026.11.02 日报
日报快照 · Daily Snapshot
NO. 017

Rust 重写 Git diff,内容感知提速百倍

#ARTICLE HackerNews 2026.11.02
推荐指数 67.0 NO. 017 · 2026.11.02
发布2026/11/01Score92Comments33

OmniDiff 是用 Rust 写的开源 difftool,能针对代码、图片、字体、PDF 等不同内容类型选择专用算法做 diff。对每天处理大量代码审查或文档比对的工程师,这意味着不再需要为不同文件类型切换工具,且 98% 以上的场景能在 100ms 内完成。

Git 原生的 diff 对二进制文件基本无能为力,工程师们通常的 workaround 是 gitattributes 配外部转换器或者直接用 Beyond Compare、Kaleidoscope 这些 GUI 工具,但都不支持内容类型的自动识别。OmniDiff 的差异化在于把 filetype detection 和算法选择做进了同一个工具链里,对标的是 GitHub 的 rich diff 体验但放在本地 CLI。

从实测数据看,PDF 的 perfect accuracy 达到 100% 但 fast 比例只有 57%,说明内容越复杂算法开销越大,这是落地时需要权衡的点。如果你团队在做代码审查工具链或 CI 里的变更检测,可以把 OmniDiff 作为 git difftool 的 drop-in replacement 试跑一周,特别关注图片和字体这类以往 diff 体验极差的场景。

意见分歧 28 条评论

核心争论:AGPL 许可证是否阻碍工具成为行业标准, versus 作者坚持 copyleft 的政治选择

paaloeye

How is it better or worse compared to https://github.com/dandavison/delta ?

FabCH

It’s much much better with moved code. Delta adds color to the standard git diff algorithm. Omnidiff uses a completely different algorithm. About a third of diffs are significantly better.

paaloeye

Okay, I'll give it a try then.

替代方案: deltadifftasticdiffsitter
查看原文 →