我如何强制hg merge是交互式的?

时间:2012-07-26 23:58:56

标签: mercurial msbuild merge cruisecontrol.net interactive

我在CruiseControl.NET下运行自动化hg合并,作为MSBuild作业的一部分。由于某种原因,即使我没有在命令中指定-y,合并也以非交互模式运行。这导致了意想不到的结果,因为它在提示冲突时采用第一个选项,我宁愿它超时并且失败所以我们知道我们需要手动查看它。

所以两个问题:

1)当我没有给它-y时,为什么它以非迭代方式运行? 2)有没有办法强制hg合并是交互式的,这样作业就会超时并失败?

2 个答案:

答案 0 :(得分:3)

基于this answer on another question,看起来Mercurial会自动检测它是在TTY下运行还是无头,因此不会提示您。您可以通过提供ui.interactive配置选项来覆盖它:

hg --config ui.interactive=yes

答案 1 :(得分:2)

我认为更好的想法是使用hg merge --tool internal:merge。 Mercurial将尝试进行自动合并,但如果存在任何冲突,则会失败。这里有other options可能。

我在从外部ClearCase存储库自动拉取后每天使用它并且效果很好。如果有任何冲突,那么我的CI工作就会失败。