私はマージを間違えました。元に戻してからもう一度やり直したいのですが。
コミットされる前にマージを元に戻す方法はありますか?
hg revert私が望むことをしません、それはファイルのテキストを元に戻すだけです。Mercurialは、マージの2回目の試行を中止し、元のマージがまだコミットされていないことを訴えます。
hg mergeコマンドの後、コミットされる前にマージを元に戻す方法はありますか?
回答:
hg update -C <one of the two merge changesets>
--cleanはの同義語です-C。どのチェンジセット.が参照するかはわかりませんが、常に2つのマージされたチェンジセットの1つになります。
.は、マージを開始する前に行っていたリビジョンまでクリーニングする必要があります。したがって、r42にいて、r43とのマージを試み、失敗し、クリーンアップした場合は、元のr42に戻ります。
.マージのコンテキストでの意味はかなりあいまいです。
実行後、実行hg merge前hg commitに、作業コピーには2つの親があります。最初の親はマージ前に更新した変更セットであり、2番目の親はマージする変更セットです。Mercurialはhg merge、作業コピーに2人の親がいる限り、再度実行することはできません。
続行する方法には2つのオプションがあります。
マージを中止して開始した場所に戻りたい場合は、
hg update -C .
これにより、作業コピーが最初の親と一致するように更新され.ます。常に、作業コピーの最初の親を示します。
一部のファイルを再マージする場合は、
hg resolve fileA fileB
これにより、以前と同じようにマージツールが再起動しますhg merge。hg mergeマージツールが正しく構成されていないことが判明した場合は、resolveコマンドが適していますhg resolve --all。構成を修正して実行します。hg resolveマージに満足するまで、何度でも実行できます。