差异 (diff)
检测和显示两个文本之间差异的处理。是版本控制和代码审查的基础技术。
差异 (diff) 是比较两个文本文件或数据集,检测和显示添加、删除和修改部分的过程。源自 Unix 的 diff 命令,广泛用作版本控制系统的基础技术。
Git 使用 diff 算法检测提交之间的变更。在统一 diff 格式中,添加行用 + 标记,删除行用 - 标记。Git 实践指南详细介绍了 diff 的使用方法。
著名的 diff 算法包括 Myers 算法 (最小编辑距离) 和 patience diff (优先匹配有意义的行)。
从字符计数角度看,diff 输出除原始文本外还包含元数据 (行号、变更标记),因此 diff 输出的字符数超过原始文本。文本算法书籍提供了更多背景知识。