web-dev-qa-db-ja.com

Mercurialでマージを中止する方法は?

マージを間違えました。元に戻してからもう一度試してください。
コミットする前にマージを元に戻す方法はありますか?

hg revertは私が望むことをしません。ファイルのテキストを元に戻すだけです。 Mercurialは、2回目のマージ試行を中止し、元のマージがまだコミットされていないことを訴えます。

hg mergeコマンドの後、コミットする前にマージを取り消す方法はありますか?

79
deft_code

hg update -C <one of the two merge changesets>

100
Omnifarious

hg mergeを実行した後、hg commitの前に、作業コピーには2つの親があります。最初の親はマージ前に更新したチェンジセットで、2番目の親はマージするチェンジセットです。作業コピーに2つの親がある限り、Mercurialはhg mergeを再度許可しません。

続行方法には2つのオプションがあります。

  1. マージを中止して、開始した場所に戻りたい場合は、

    hg update -C .
    

    これにより、最初の親に一致するように作業コピーが更新されます。.は常に作業コピーの最初の親を示します。

  2. re-mergeいくつかのファイルにしたい場合

    hg resolve fileA fileB
    

    これは、hg mergeを実行したときと同じように、マージツールを再起動します。 resolveコマンドは、hg merge-時にマージツールの設定が不適切であることがわかった場合に役立ちます。設定を修正し、hg resolve --allを実行します。マージに満足するまで、hg resolveを何度でも実行できます。

38
Martin Geisler