2

MSBuild ジョブの一部として、CruiseControl.NET で自動化された hg マージを実行しています。コマンドで指定していないにもかかわらず、何らかの理由でマージが非対話モードで実行されます-y。これは、競合についてプロンプトが表示されたときに最初のオプションを使用するため、予期しない結果を引き起こしています。手動で確認する必要があることがわかっているので、タイムアウトして失敗することをお勧めします。

だから2つの質問:

1) を与えていないのに、非反復的に実行されるのはなぜ-yですか?
2) ジョブがタイムアウトして失敗するように、hg マージを強制的にインタラクティブにする方法はありますか?

4

2 に答える 2

3

this answer on another questionに基づいて、Mercurial が TTY で実行されているかヘッドレスであるかを自動検出するように見えるため、プロンプトは表示されません。ui.interactiveconfig オプションを指定することで、これをオーバーライドできます。

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 に答える