diff
和 patch
— 文件差异
diff
工具用于创建补丁(有时称为差异)。补丁是一个程序(计算机科学定义),它可以修改一个或多个文件中的文本。通常这些用于在编译源代码之前对其进行更改。
最简单的调用是 diff -u oldfile newfile
,它将在 oldfile
和 newfile
之间创建统一格式的差异列表。要对目录进行操作,请使用 diff -urN olddir newdir
。
注意:像
git
、svn
或 cvs
这样的 VCS 提供了内置的 diff 功能(git diff
、svn diff
、cvs diff
),这可能更有帮助。对于进入主树的补丁,请使用统一格式(-u
)。这通常是将补丁发送到上游时要使用的最佳格式——但是,有时可能会要求您提供上下文差异,上下文差异比统一差异更便携(但不能像统一差异那样干净地处理冲突)。在这种情况下,使用 -c
而不是 -u
。有关补丁和修补程序的详细指南,请参见 补丁。
要应用补丁,请使用 patch -pX < whatever.patch
,其中 X
是一个数字,代表必须删除的路径组件的数量(通常是 0
或 1
)。在 ebuild 中,请使用 eapply
函数——请参见 使用 eapply 修补。
diff(1)
和 patch(1)
手册页提供了更多信息。