diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -865,7 +865,11 @@ except error.InMemoryMergeConflictsError: ui.warn(_('hit merge conflicts; re-running rebase without in-memory' ' merge\n')) - _dorebase(ui, repo, action='abort', opts={}) + # TODO: Make in-memory merge not use the on-disk merge state, so + # we don't have to clean it here + mergemod.mergestate.clean(repo) + clearstatus(repo) + clearcollapsemsg(repo) return _dorebase(ui, repo, action, opts, inmemory=False) else: return _dorebase(ui, repo, action, opts) 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 @@ -422,7 +422,6 @@ transaction abort! rollback completed hit merge conflicts; re-running rebase without in-memory merge - rebase aborted rebasing 2:177f92b77385 "c" rebasing 3:055a42cdd887 "d" rebasing 4:e860deea161a "e" @@ -447,17 +446,10 @@ transaction abort! rollback completed hit merge conflicts; re-running rebase without in-memory merge - rebase aborted - rebasing 2:177f92b77385 "c" - rebasing 3:055a42cdd887 "d" - rebasing 4:e860deea161a "e" - merging e - warning: conflicts while merging e! (edit, then use 'hg resolve --mark') - unresolved conflicts (see hg resolve, then hg rebase --continue) - [1] -BROKEN: working copy change to "a" was lost + abort: uncommitted changes + [255] $ cat a - a + dirty Retrying without in-memory merge won't lose merge state $ cd ..