diff -r feffeb18d412 -r 03726f5b6092 mercurial/subrepo.py --- a/mercurial/subrepo.py Fri Sep 18 15:03:06 2020 -0700 +++ b/mercurial/subrepo.py Mon Sep 21 10:09:39 2020 -0700 @@ -25,6 +25,7 @@ exchange, logcmdutil, match as matchmod, + merge as merge, node, pathutil, phases, @@ -783,7 +784,10 @@ % (revision[0:12], self._path) ) repo = urepo - hg.updaterepo(repo, revision, overwrite) + if overwrite: + merge.clean_update(repo[revision]) + else: + hg.updaterepo(repo, revision, False) @annotatesubrepoerror def merge(self, state):