diff mercurial/merge.py @ 18612:0b6e6eacc939

merge: don't call copies.mergecopies unless we need to This reduces the amount of time we spend calculating when doing a clean non-merge update. In a large repo, the time dropped from 10.1 seconds to 3.4.
author Bryan O'Sullivan <bryano@fb.com>
date Sat, 09 Feb 2013 21:24:36 +0000
parents 18c2184c27dc
children 9b9e2d9e83a1
line wrap: on
line diff
--- a/mercurial/merge.py	Sat Feb 09 21:24:24 2013 +0000
+++ b/mercurial/merge.py	Sat Feb 09 21:24:36 2013 +0000
@@ -200,6 +200,8 @@
         pa = wctx
     elif pa == p2: # backwards
         pa = wctx.p1()
+    elif not branchmerge and not wctx.dirty(missing=True):
+        pass
     elif pa and repo.ui.configbool("merge", "followcopies", True):
         ret = copies.mergecopies(repo, wctx, p2, pa)
         copy, movewithdir, diverge, renamedelete = ret