应用补丁时什么是“模糊”?

应用补丁时什么是“模糊”?

我在 Debian 打包中应用 quilt 补丁时出现错误:

Applying patch debian/patches/fixshare.patch
patching file net/slirp.c
Hunk #1 FAILED at 529.
1 out of 1 hunk FAILED -- rejects in file net/slirp.c

我用谷歌搜索了一下,我了解到这个错误是由于应用补丁时的“Fuzz”造成的。现在,我的问题是什么是绒毛以及如何解决应用被子补丁的问题?

我读了本文并执行了它告诉的步骤,但我仍然有问题!

答案1

这不一定是由于模糊(特别是如果您按照中所述刷新了补丁)文章)。可能会发生源代码发生更改而导致补丁完全过时的情况。例如,原始来源是:

aa
bb
cc

和一个补丁告诉:替换行bbdd带有一些上下文,此处忽略)。然后源码改为:

aa
bbb
cc

补丁仍然说:replace line bbby dd,但是linebb已经不存在了,这样补丁就不能再成功应用了。

解决方案是查看旧源(可以应用补丁)的相应部分的失败块,并尝试查看新源中发生了什么变化,然后尝试调整新源以重新生成修补。这只能手动完成,当源代码发生重大更改时,这即使不是不可能,也可能很困难。

相关内容