# HG changeset patch # User Phil Cohen # Date 1505420072 25200 # Node ID 440ece43024c48cbaa3d3de4252abd183601e401 # Parent 3704d3f211367f452a194e0fb63a73b8d805d711 merge: allow a custom working context to be passed to update This will allow anyone to enable the first in-menmory merge milestone by wrapping merge.update in an extension and creating an overlayworkingctx. Differential Revision: https://phab.mercurial-scm.org/D682 diff -r 3704d3f21136 -r 440ece43024c mercurial/merge.py --- a/mercurial/merge.py Wed Jun 14 11:13:57 2017 -0400 +++ b/mercurial/merge.py Thu Sep 14 13:14:32 2017 -0700 @@ -1479,7 +1479,7 @@ def update(repo, node, branchmerge, force, ancestor=None, mergeancestor=False, labels=None, matcher=None, mergeforce=False, - updatecheck=None): + updatecheck=None, wc=None): """ Perform a merge between the working directory and the given node @@ -1527,6 +1527,9 @@ 2 = abort: uncommitted changes (commit or update --clean to discard changes) 3 = abort: uncommitted changes (checked in commands.py) + The merge is performed inside ``wc``, a workingctx-like objects. It defaults + to repo[None] if None is passed. + Return the same tuple as applyupdates(). """ # Avoid cycle. @@ -1550,7 +1553,8 @@ else: partial = True with repo.wlock(): - wc = repo[None] + if wc is None: + wc = repo[None] pl = wc.parents() p1 = pl[0] pas = [None]