rebase: clear merge state when aborting in-memory merge on dirty working copy
Differential Revision: https://phab.mercurial-scm.org/D9509
--- a/hgext/rebase.py Wed Dec 02 15:15:16 2020 -0800
+++ b/hgext/rebase.py Wed Dec 02 15:39:01 2020 -0800
@@ -638,7 +638,12 @@
b"commit again in the working copy\n"
)
)
- cmdutil.bailifchanged(repo)
+ try:
+ cmdutil.bailifchanged(repo)
+ except error.Abort:
+ clearstatus(repo)
+ clearcollapsemsg(repo)
+ raise
self.inmemory = False
self._assignworkingcopy()
mergemod.update(repo[p1], wc=self.wctx)
--- a/tests/test-rebase-inmemory.t Wed Dec 02 15:15:16 2020 -0800
+++ b/tests/test-rebase-inmemory.t Wed Dec 02 15:39:01 2020 -0800
@@ -489,12 +489,6 @@
dirty
$ hg status -v
M a
- # The repository is in an unfinished *rebase* state.
-
- # To continue: hg rebase --continue
- # To abort: hg rebase --abort
- # To stop: hg rebase --stop
-
Retrying without in-memory merge won't lose merge state
$ cd ..