# HG changeset patch
# User Martin von Zweigbergk <martinvonz@google.com>
# Date 1606952341 28800
#      Wed Dec 02 15:39:01 2020 -0800
# Node ID 61c1f29e7f4f26dca94e831d2ba7c3ff81c0faeb
# Parent  d767f71b91589335041b570ec60281a3a06ab117
rebase: clear merge state when aborting in-memory merge on dirty working copy

Differential Revision: https://phab.mercurial-scm.org/D9509

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -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)
diff --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t
--- a/tests/test-rebase-inmemory.t
+++ b/tests/test-rebase-inmemory.t
@@ -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 ..