我使用 uupdate 将源包从 0.7.0 更新到 0.7.3。它使用补丁进行此更新,我有一些补丁拒绝。我不确定下一步该做什么。我是否:
- 编辑旧的源包 (0.7.0) 然后重新运行 uupdate?
- 编辑新的源包(0.7.3)然后重新运行uupdate?
- 直接编辑 .rej 文件?
- 使用kdiff3之类的工具?
- 试试别的?
在这一点上,我认为答案是使用一个更符合我熟悉的工具(来自 Tortoise Merge 和 clearcase 合并背景)。
我已经搜索了人们如何管理补丁拒绝的高低搜索,但我没有运气,所以如果你能提供一个 FM 的链接(如果存在),我会很高兴 RTFM。
我同意@maco 关于手动解决冲突的观点。看到您给出的选项,您可能需要真正了解什么
uupdate does
,即:补丁拒绝来自将此 diff.gz 应用于新目录。
现在来看看你的选择:
vim -d
是你的朋友)虽然 .rej 文件应该已经让你知道什么未能应用。您还可以阅读之前的 diff.gz 以了解它正在修改哪些文件。一般来说,我遇到的大多数 uupdate 冲突都是由于以前版本的软件包中的错误打包造成的,即 diff.gz 修改了源代码而不是仅仅添加了 debian/ 目录。这可以很容易地检查:
将为您提供上一个补丁修改的文件列表(根据您的需要调整文件名)。如果您在此列表中找到不在 debian/ 目录中的文件,那么您的问题肯定存在。在这种情况下,请检查已更改的内容:
debuild -S
调用它是一个 autotools 混乱:其中一个 autoconf/automake 脚本已被修改,此修改将不再适用。在新版本中删除此更改通常是安全的;我只是手动解决冲突并
debuild -S
照常运行。