准确应用补丁成功后?

时间:2012-08-10 03:03:24

标签: diff patch

通过获取源代码文件的原始版本(让我们称之为rev1),对其进行更改(因此它变为rev2),然后使用diff来完成补丁。

补丁适用于rev1,这很好。

但是,有时相同的补丁会干净地应用于同一文件的其他修改版本(但并非总是如此)。究竟是这样的?

1 个答案:

答案 0 :(得分:1)

发生这种情况的确切条件取决于您使用的补丁程序应用程序。但是,大多数补丁程序都有启发式算法,这些算法允许基本文件在某些​​方面与最初用于创建补丁的基本文件不同。

最有用的补丁格式在更改的行周围包含几行未更改的“上下文”行。补丁程序将使用补丁文件中的行号信息(可能不同)与上下文行一起使用,以查找应用更改的适当位置在新基本文件中的位置。通常,允许行号稍有不同,但上下文行必须完全匹配。

如果上下文行不同并且补丁程序找不到修改的位置,则会遇到冲突(并且可能会生成“拒绝的hunk”输出)。