# HG changeset patch # User Durham Goode # Date 1360015809 28800 # Node ID acf4a405e440a47e18ca23a0f5cc200a32a44717 # Parent d1582dd6288e959d668e2841e9d076cd442d43bf addremove: don't perform m.exact/rel until needed Moves the m.exact and m.rel calls within the conditionals they are used in. On a large repo this brings addremove from 7.1 seconds down to 6.3 (13%). diff -r d1582dd6288e -r acf4a405e440 mercurial/scmutil.py --- a/mercurial/scmutil.py Mon Feb 04 14:06:20 2013 -0800 +++ b/mercurial/scmutil.py Mon Feb 04 14:10:09 2013 -0800 @@ -741,20 +741,20 @@ audit_path(abs) except (OSError, util.Abort): good = False - rel = m.rel(abs) - exact = m.exact(abs) st = walkresults[abs] dstate = repo.dirstate[abs] if good and dstate == '?': unknown.append(abs) - if repo.ui.verbose or not exact: + if repo.ui.verbose or not m.exact(abs): + rel = m.rel(abs) repo.ui.status(_('adding %s\n') % ((pats and rel) or abs)) elif (dstate != 'r' and (not good or not st or (stat.S_ISDIR(st.st_mode) and not stat.S_ISLNK(st.st_mode)))): deleted.append(abs) - if repo.ui.verbose or not exact: + if repo.ui.verbose or not m.exact(abs): + rel = m.rel(abs) repo.ui.status(_('removing %s\n') % ((pats and rel) or abs)) # for finding renames elif dstate == 'r':