【问题标题】:Graphical patch utility图形补丁实用程序
【发布时间】:2010-06-18 12:30:55
【问题描述】:

我有一个内核补丁,其内核版本与我尝试打补丁的内核版本略有不同。不用说,补丁部分失败了。我当然可以手动修复它,但我想知道是否有一个图形补丁实用程序可以用来解决冲突。

【问题讨论】:

    标签: linux merge diff patch


    【解决方案1】:

    有很多图形修补实用程序,尝试melddiffusekdiff3dirdiff,它们应该被打包为您的发行版。

    另一个有用的工具是wiggle,它“更努力地”解决冲突,并将rej文件从补丁转换为带有>>>标记的CVS风格的内联冲突。

    我倾向于将它与底层修订系统一起使用,所以如果它们有误,我很乐意恢复它的更改,因此我使用:

    wiggle -v --replace <file> <file.rej>

    说要在适当的位置进行转换,有时它会做正确的事情,有时你会得到 >>> 标记并且可以手动编辑,但它比手动使用 rej 文件更容易。如果它确实做得不好,我会使用我的修订控制系统 (git) 恢复到原来的状态。

    【讨论】:

      【解决方案2】:

      我不知道图形补丁实用程序,但我可能会做的是获取旧内核版本中的文件,应用补丁以获得修补的旧文件(保留旧文件( s)),获取新内核版本中的文件,然后使用GNU Meld等3路合并工具。

      这个过程有点费时,但我发现它对解决 Subversion 冲突非常有帮助(与您想要完成的非常相似)。而且,它允许您快速确定两个内核版本中的文件有什么不同、发生了什么变化,以及您可能需要对补丁行进行的各种更改,以便使它们与新文件兼容。

      【讨论】:

      • 我知道融合。您建议的明显问题是,除了补丁之外,新旧内核版本之间存在太多差异。看来我正在寻找的实用程序不存在,所以我将不得不手动进行。还是谢谢。
      【解决方案3】:

      是的,我在尝试将 Firefox Light v27 补丁应用到 Firefox v28 beta 4 时遇到了类似的情况。Mozilla 团队重命名了一些东西,所以它不是直接插入。我希望这样做以便我可以编译它适用于 Linux。我最终在一个文本编辑器中打开补丁,在另一个文本编辑器中打开代码。

      它是 Mousepad,但它也可以是任何简单的文本编辑器,gEdit、Leafpad、Geany...那样慢。 “查找”有助于跳转到正确的编辑位置。

      我还应该提到,如果您将正在使用的补丁程序粘贴到一个空窗口中,您可以查找并替换 + 符号,然后将其替换为任何内容,从而将其剥离为可用代码。 .. 对于大块添加的代码来说,这更容易,而不是在向上箭头和删除键上摆弄手指。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-26
        • 2011-06-14
        • 2012-05-10
        • 1970-01-01
        • 2015-05-21
        • 2018-04-24
        • 2011-10-11
        • 1970-01-01
        相关资源
        最近更新 更多