--- a/mercurial/merge.py Sun Feb 10 12:16:46 2013 +0000
+++ b/mercurial/merge.py Sun Feb 10 16:55:01 2013 +0000
@@ -196,6 +196,7 @@
overwrite = force and not branchmerge
actions, copy, movewithdir = [], {}, {}
+ followcopies = False
if overwrite:
pa = wctx
elif pa == p2: # backwards
@@ -203,6 +204,13 @@
elif not branchmerge and not wctx.dirty(missing=True):
pass
elif pa and repo.ui.configbool("merge", "followcopies", True):
+ followcopies = True
+
+ # manifests fetched in order are going to be faster, so prime the caches
+ [x.manifest() for x in
+ sorted(wctx.parents() + [p2, pa], key=lambda x: x.rev())]
+
+ if followcopies:
ret = copies.mergecopies(repo, wctx, p2, pa)
copy, movewithdir, diverge, renamedelete = ret
for of, fl in diverge.iteritems():