# HG changeset patch # User Martin von Zweigbergk # Date 1600708179 25200 # Node ID 03726f5b6092c0e5921282847b3af7f6866e773d # Parent feffeb18d412c334bbcb72e05b061cacb5ba9e71 merge: use merge.clean_update() when applicable We have had this higher-level function (higher than `merge.update()`, that is) for a while. Let's simply some callers by using it. I don't know why I didn't do this when I introduced the function. After this patch, there are no remaining callers that call `hg.updaterepo()` with `overwrite=True`. We'll clean that up soon. Differential Revision: https://phab.mercurial-scm.org/D9063 diff -r feffeb18d412 -r 03726f5b6092 hgext/rebase.py --- a/hgext/rebase.py Fri Sep 18 15:03:06 2020 -0700 +++ b/hgext/rebase.py Mon Sep 21 10:09:39 2020 -0700 @@ -1099,7 +1099,7 @@ ) # update to the current working revision # to clear interrupted merge - hg.updaterepo(repo, rbsrt.originalwd, overwrite=True) + mergemod.clean_update(repo[rbsrt.originalwd]) rbsrt._finishrebase() return 0 elif inmemory: diff -r feffeb18d412 -r 03726f5b6092 hgext/transplant.py --- a/hgext/transplant.py Fri Sep 18 15:03:06 2020 -0700 +++ b/hgext/transplant.py Mon Sep 21 10:09:39 2020 -0700 @@ -476,7 +476,7 @@ """logic to stop an interrupted transplant""" if self.canresume(): startctx = repo[b'.'] - hg.updaterepo(repo, startctx.node(), overwrite=True) + merge.clean_update(startctx) ui.status(_(b"stopped the interrupted transplant\n")) ui.status( _(b"working directory is now at %s\n") % startctx.hex()[:12] diff -r feffeb18d412 -r 03726f5b6092 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Fri Sep 18 15:03:06 2020 -0700 +++ b/mercurial/cmdutil.py Mon Sep 21 10:09:39 2020 -0700 @@ -4154,7 +4154,6 @@ startctx = repo[b'.'] # whether to strip or not cleanup = False - from . import hg if newnodes: newnodes = [repo[r].rev() for r in newnodes] @@ -4182,7 +4181,7 @@ if cleanup: with repo.wlock(), repo.lock(): - hg.updaterepo(repo, startctx.node(), overwrite=True) + mergemod.clean_update(startctx) # stripping the new nodes created strippoints = [ c.node() for c in repo.set(b"roots(%ld)", newnodes) @@ -4192,7 +4191,7 @@ if not cleanup: # we don't update to the startnode if we can't strip startctx = repo[b'.'] - hg.updaterepo(repo, startctx.node(), overwrite=True) + mergemod.clean_update(startctx) ui.status(_(b"graft aborted\n")) ui.status(_(b"working directory is now at %s\n") % startctx.hex()[:12]) diff -r feffeb18d412 -r 03726f5b6092 mercurial/commands.py --- a/mercurial/commands.py Fri Sep 18 15:03:06 2020 -0700 +++ b/mercurial/commands.py Mon Sep 21 10:09:39 2020 -0700 @@ -3247,7 +3247,7 @@ if not graftstate.exists(): raise error.Abort(_(b"no interrupted graft found")) pctx = repo[b'.'] - hg.updaterepo(repo, pctx.node(), overwrite=True) + mergemod.clean_update(pctx) graftstate.delete() ui.status(_(b"stopped the interrupted graft\n")) ui.status(_(b"working directory is now at %s\n") % pctx.hex()[:12]) diff -r feffeb18d412 -r 03726f5b6092 mercurial/hg.py --- a/mercurial/hg.py Fri Sep 18 15:03:06 2020 -0700 +++ b/mercurial/hg.py Mon Sep 21 10:09:39 2020 -0700 @@ -1074,7 +1074,7 @@ def clean(repo, node, show_stats=True, quietempty=False): """forcibly switch the working directory to node, clobbering changes""" - stats = updaterepo(repo, node, True) + stats = mergemod.clean_update(repo[node]) assert stats.unresolvedcount == 0 if show_stats: _showstats(repo, stats, quietempty) 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):