我有一个补丁和目录要修补。我可以用
来应用补丁patch -p0 --merge my.patch
然后正确标记冲突(使用“<<<<”,“====”等等)。
问题是 - 是否有一个图形工具可以解决以这种方式标记的冲突?或者,在我只有一个补丁和一组要修补的文件(目录)的情况下,还有其他任何形式的图形冲突解决方法吗?我试过Kompare,但效果不好。
答案 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