mercurial/merge.py
changeset 18651 e556659340f0
parent 18650 de0bd4bfc6d7
child 18778 1ef89df2c248
--- 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():