mercurial/merge.py
changeset 34302 440ece43024c
parent 34142 24bf823377fc
child 34348 1a5abc45e2fa
--- 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]