使用 vimdiff 时无法解决 hg 合并冲突

Unable to resolve hg merge conflict when using vimdiff

我使用的是 mercurial 的默认版本,没有做太多修改。默认情况下,它使用 "vimdiff" 用于我不熟悉的目的。我要解释一下情况:

默认分支上第一次提交后:

#include <stdio.h>

int main

xyz 分支上第一次提交后:

#include <stdio.h>

int main()
{
    return 0;
}

默认 分支上第二次提交后:

#include <stdio.h>

#define MAX(x, y)     (x > y ? x : y)

int main

将 xyz 分支合并到默认分支后的预期代码:

#include <stdio.h>

#define MAX(x, y)     (x > y ? x : y)

int main()
{
    return 0;
}

我应该 accept/discard hunks/diffs/parts 代码如何在 vimdiff 或 ediff 中获得预期的结果。如果有其他方法可以解决此问题,请分享。

Mercurial 有一组它将搜索的默认合并工具。如果它建议 vimdiff,那是因为它没有找到任何其他工具,或者因为您已经在 $HOME/.hgrc.

中指定了它

页面 https://www.mercurial-scm.org/wiki/MergeToolConfigurationhg help mergetool 解释了用于指定 mergetool 的语法。我建议使用 KDiff3,它是一个跨平台的 GUI 合并工具。

然后你必须熟悉 KDiff3 的用法,但它是一个 GUI,所以你可以直接探索它。如果有人想使用它们,它还有许多键盘快捷键。