如何告诉Mercurial在特定目录中的任何文件的合并冲突期间自动接受“他们的”版本?

时间:2012-03-08 17:38:24

标签: mercurial merge merge-conflict-resolution

首先,我不想检查生成的文件,但我的经理坚持认为。所以,考虑到这些限制,我想创建一个多变的“合并模式”,它总是将“他们的文件”放在我工作仓库中名为“generated”的所有目录中。我已阅读hgrc documentationrelated post,我觉得这应该是这样的:

[merge-patterns]
generated/** = internal:other #keep their files

这是放在我的根.hg / hgrc文件中。当我使用合并冲突运行hg更新时,这就是我得到的:

> hg update
couldn't find merge tool internal:other #keep their files specified for generated/**
merging generated/file.sv

所以我修改了“merge-patterns”看起来像这样:

[merge-patterns]
**/generated/** = internal:other #keep their files

这就是我得到的:

> hg update
merging generated/file.sv

所以,我不再得到“无法找到合并工具内部:其他”的警告,但它仍在尝试合并生成的文件。

有关如何使其发挥作用的任何想法?

附加说明:

  1. 我们正在使用Mercurial版本1.7.5,因为我们遇到了较新版本和子版本的问题。
  2. 我正在使用subrepos,所以这里是我的主要仓库的结构:
  3. enter image description here

1 个答案:

答案 0 :(得分:4)

我认为问题只是评论! Mercurial正在搜索名为

的工具
internal:other #keep their files

并且不太可能存在:-)尝试将评论移到上面的一行:

[merge-patterns]
# keep their files
generated/** = internal:other

我没有对此进行测试,但我相信你仍然需要你使用的第一个模式 - 第二次尝试时警告消失了,因为模式不再匹配subrepo 中的。即使从顶层开始合并,也会合并子项目,就像在子库中执行hg merge一样。