diff --git a/hgext/transplant.py b/hgext/transplant.py --- a/hgext/transplant.py +++ b/hgext/transplant.py @@ -198,9 +198,7 @@ if pulls: if source != repo: exchange.pull(repo, source.peer(), heads=pulls) - merge._update( - repo, pulls[-1], branchmerge=False, force=False - ) + merge.update(repo[pulls[-1]]) p1 = repo.dirstate.p1() pulls = [] @@ -275,7 +273,7 @@ tr.close() if pulls: exchange.pull(repo, source.peer(), heads=pulls) - merge._update(repo, pulls[-1], branchmerge=False, force=False) + merge.update(repo[pulls[-1]]) finally: self.saveseries(revmap, merges) self.transplants.write() diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -2133,6 +2133,23 @@ ) +def update(ctx, updatecheck=None, wc=None): + """Do a regular update to the given commit, aborting if there are conflicts. + + The 'updatecheck' argument can be used to control what to do in case of + conflicts. + """ + return _update( + ctx.repo(), + ctx.rev(), + branchmerge=False, + force=False, + labels=[b'working copy', b'destination'], + updatecheck=updatecheck, + wc=wc, + ) + + def clean_update(ctx, wc=None): """Do a clean update to the given commit.