关于文本 Diff 对比
文本 Diff(差异对比)是比较两段文本或两个文件,找出差异部分的技术。在代码版本控制(Git、SVN)、文档修订、配置对比、合同审阅等场景中,Diff 是必不可少的工具。通过 Diff,开发者可以快速查看修改前后的差异,便于 Code Review 与问题排查。
在实际工作中,开发者常需要进行文本对比:对比两份配置文件找出差异、对比接口返回的两次响应数据找出变化、对比代码修改前后的差异等。手动逐行对比既低效又易错,借助专门工具可以瞬间完成并高亮显示差异。
本文本 Diff 对比工具基于 LCS(最长公共子序列)算法实现,支持行级与字符级差异对比,增删改高亮显示。所有对比在浏览器本地完成,文本内容不会上传到任何服务器。
核心特性
行级与字符级对比
支持行级差异(按行对比)与字符级差异(行内字符对比),覆盖不同精度需求。
增删改高亮
新增行绿色高亮、删除行红色高亮、修改行黄色高亮,差异一目了然。
并排与统一视图
支持并排视图(左右对比)与统一视图(合并显示)两种模式,按需切换。
行号显示
每行显示行号,方便定位差异位置。
本地处理零上传
所有对比在浏览器内完成,包含敏感信息的文本可放心处理。
使用场景
配置文件对比
对比两份配置文件(如 JSON、YAML、INI),快速找出修改的字段,避免遗漏。
接口响应对比
对比接口两次返回的数据,定位字段变化,调试接口逻辑。
代码修改对比
对比代码修改前后的版本,便于 Code Review 与问题排查。
文档修订对比
对比文档的两个版本,查看修订内容,便于审阅与确认。
常见问题
行级与字符级对比有什么区别?
行级对比以行为单位,整行不同即标记为差异;字符级对比在行级基础上进一步对比行内字符,精确标记修改的具体字符。字符级对比更精确但输出更复杂。
支持哪些文件格式?
支持任意文本格式,包括代码、配置、文档等。本工具按文本内容对比,不解析文件格式语义。
大文件对比会很慢吗?
本工具基于 LCS 算法,时间复杂度为 O(n*m),对 KB 级文本基本无感,MB 级文本会有可察觉的延迟。如需对比超大文件,建议使用 diff、beyond compare 等专门工具。
对比时区分大小写吗?
区分。"Hello" 与 "hello" 被视为不同的文本。如需不区分大小写对比,请先将文本统一转换为大写或小写再对比。