昨夜、私はマージを開始しました。それを忘れてしまった。作業コピーの変更を失うことなくHgマージを中止するにはどうすればよいですか?
後で作業コピーを少し変更しました。
今日、私はもはやマージしたくないです(私は新しいリビジョンをマージします)が、私はローカルの作業の変更を保ちたいと思います。変更は、マージの解決とは無関係です。
現在のマージを中止しているときに、ローカルの変更をどのように保持(および/または後で再適用)できますか?ローカルの変更にshelve
を使用して
は許可されませんでした。
$ hg shelve foo/bar
abort: cannot shelve while merging
hg up -C
を使用して、「マージを中止」に通常の方法で、ローカルの変更を排除するであろう。
マージが既にだけコミットしていない、開始されているので、これはHow to 'hg merge' without affecting the working directory?のようではありません。 はという質問は「コミットなしで中止」に焦点を当てていますが、コミットを最初に完了してから変更を取り出すことを含む回答が適切です。それが誤ってしないように私たちは、秘密を使用している
hg resolve -m -a # mark all files as resolved
hg commit -s -m "Savepoint." # Temporary commit.
hg update .^ # Back to original revision.
# (Use ".^" in cmd.exe on Windows.)
hg revert -r tip --all # Revert files to saved commit.
hg diff # Verify that you've got all the changes.
hg strip -r tip --keep # And discard the temporary commit.
がここにコミット:
パッチとして保存したい変更をエクスポートできますか?私はおそらく少し労働集約的だろう。 – Nanhydrin
@ナンヒドリン私はそのような場合に回復することの退屈を「最小限に抑えながら」実行できるプロセスに熱心です。私はマージの途中ではないと思ってHgを騙す魔法を見つけましたが、それは魔法のように保つべきものです: – user2864740