
OmniDiff 是一款用 Rust 写的开源 diff 工具(AGPL v3),思路跟传统 diff 不一样:它不按行比、按内容比。代码按语法结构 diff,函数里只改了一个表达式,它就只标那一处,不会把整行标红当删增;图片、PDF、字体、压缩包、翻译目录这些 git 只能回一句「Binary files differ」的东西,它也能讲清楚到底改了什么。
作者给出的数据:99.95% 的代码改动都能 diff,98.8% 的改动走了内容专属算法;代码类改动 98% 能在 100ms 内完成。支持 25 种语言的 tree-sitter 结构 diff,终端里是交互界面,也能当 git difftool 或 jj 的 diff 工具用,一条 omnidiff git configure 就接好;macOS 有 Homebrew(brew install ivankovic/omnidiff/omnidiff)和预编译包,Linux、Windows 也都有。
最适合审 PR、看重构 diff 的时候用:合代码前想一眼看清「到底改了什么」,而不是在满屏红绿里找真正的改动。作者还在官网放了 20 组真实改动的在线对照,不用安装就能先看效果。站内之前发过的 REA 逆向工程工具也是帮开发者看清代码的工具,可以对照着看;刚学 Git 工作流的可以顺带看这篇 Claude Code 第一次会话实操里的提交流程。
来源:Hacker News @FabCH,原文:https://github.com/ivankovic/omnidiff


没有回复内容