[PATCH 2 of 3] merge: pass constant cset ancestor to fctx.ancestor
Peter Arrenbrecht
peter.arrenbrecht at gmail.com
Fri Jun 18 07:36:46 UTC 2010
# HG changeset patch
# User Peter Arrenbrecht <peter.arrenbrecht at gmail.com>
# Date 1276843764 -7200
merge: pass constant cset ancestor to fctx.ancestor
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -244,8 +244,13 @@
def actionkey(a):
return a[1] == 'r' and -1 or 0, a
-def applyupdates(repo, action, wctx, mctx):
- "apply the merge action list to the working directory"
+def applyupdates(repo, action, wctx, mctx, actx):
+ """apply the merge action list to the working directory
+
+ wctx is the working copy context
+ mctx is the context to be merged into the working copy
+ actx is the context of the common ancestor
+ """
updated, merged, removed, unresolved = 0, 0, 0, 0
ms = mergestate(repo)
@@ -265,7 +270,7 @@
repo.ui.debug("preserving %s for resolve of %s\n" % (f, fd))
fcl = wctx[f]
fco = mctx[f2]
- fca = fcl.ancestor(fco) or repo.filectx(f, fileid=nullrev)
+ fca = fcl.ancestor(fco, actx) or repo.filectx(f, fileid=nullrev)
ms.add(fcl, fco, fca, fd, flags)
if f != fd and move:
moves.append(f)
@@ -506,7 +511,7 @@
if not partial:
repo.hook('preupdate', throw=True, parent1=xp1, parent2=xp2)
- stats = applyupdates(repo, action, wc, p2)
+ stats = applyupdates(repo, action, wc, p2, pa)
if not partial:
repo.dirstate.setparents(fp1, fp2)
More information about the Mercurial-devel
mailing list