diff --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -564,6 +564,10 @@ scmutil.movedirstate(repo, parent, match) else: hg.update(repo, parent.node()) + ms = mergestatemod.mergestate.read(repo) + if not ms.unresolvedcount(): + ms.reset() + if origbranch != repo[b'.'].branch() and not _isbareshelve(pats, opts): repo.dirstate.setbranch(origbranch) diff --git a/tests/test-shelve.t b/tests/test-shelve.t --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -810,9 +810,8 @@ ? foo/foo $ hg bookmark \* test (4|13):33f7f61e6c5e (re) -BROKEN: there shouldn't be a merge state +there shouldn't be a merge state $ hg resolve -l - R a/a $ hg unshelve unshelving change 'test' temporarily committing pending changes (restore with 'hg unshelve --abort')