rebase: clear merge state when aborting in-memory merge on dirty working copy
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 02 Dec 2020 15:39:01 -0800
changeset 46010 61c1f29e7f4f
parent 46009 d767f71b9158
child 46011 b9588ff9b66a
rebase: clear merge state when aborting in-memory merge on dirty working copy Differential Revision: https://phab.mercurial-scm.org/D9509
hgext/rebase.py
tests/test-rebase-inmemory.t
--- a/hgext/rebase.py	Wed Dec 02 15:15:16 2020 -0800
+++ b/hgext/rebase.py	Wed Dec 02 15:39:01 2020 -0800
@@ -642,7 +642,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 ..