2

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

所以两个问题:

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

4

2 回答 2

3

根据另一个问题的答案,Mercurial 似乎会自动检测它是在 TTY 下运行还是无头,因此不会提示您。您可以通过提供ui.interactive配置选项来覆盖它:

hg --config ui.interactive=yes
于 2012-09-04T19:10:35.047 回答
2

我认为更好的主意是使用hg merge --tool internal:merge. Mercurial 将尝试进行自动合并,但如果有任何冲突将失败。这里还有其他可能的选择。

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

于 2012-07-27T16:44:50.580 回答