解决冲突的GUI

时间:2011-06-28 12:57:08

标签: user-interface merge diff patch

我有一个补丁和目录要修补。我可以用

来应用补丁
patch -p0 --merge my.patch

然后正确标记冲突(使用“<<<<”,“====”等等)。

问题是 - 是否有一个图形工具可以解决以这种方式标记的冲突?或者,在我只有一个补丁和一组要修补的文件(目录)的情况下,还有其他任何形式的图形冲突解决方法吗?我试过Kompare,但效果不好。

2 个答案:

答案 0 :(得分:0)

我工作的工具

ECMerge有一个现成的命令,从命令行调用ecmerge.exe --open-conflict mydocument.c完成工作(Windows / Linux有一个shell扩展)和Mac以及GUI中的菜单项)。它为您提供了在这种情况下可以预期的通常的2路或3路合并视图。

ECMerge还可以直接完成补丁工作,让您可以使用其补丁程序导入功能在GUI中完全预览和合并。

答案 1 :(得分:0)

如果您使用的是git存储库,则可以使用而不是使用patch命令 可以触发以下命令,如下所示:

      $ git am -3 < /tmp/0001-Added-feature-hello.patch
      Applying: Added feature hello
      Using index info to reconstruct a base tree...
      M       code.c
      Falling back to patching base and 3-way merge...
      Auto-merging code.c
      CONFLICT (content): Merge conflict in code.c
      error: Failed to merge in the changes.
      Patch failed at 0001 Added feature hello
      Use 'git am --show-current-patch' to see the failed patch
      When you have resolved this problem, run "git am --continue".
      If you prefer to skip this patch, run "git am --skip" instead.
      To restore the original branch and stop patching, run "git am --abort".

要使用GUI解决冲突,请执行以下命令:

      $ git mergetool --tool=meld