# HG changeset patch # User Siddharth Agarwal # Date 2013-04-02 21:49:34 # Node ID 6de8cd5c719abbf085b876e38cb22c9c52c3ec0a # Parent ec91b66e8965e4b4655e1ec49c41301de297a8e1 scmutil.addremove: remove redundant directory and symlink checks dirstate.walk only does lstats and never returns stat objects for directories. On a large repository with 170,000 files, this speeds perfaddremove up from 2.40 seconds to 2.34. diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -686,8 +686,7 @@ def addremove(repo, pats=[], opts={}, dr 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 st or - (stat.S_ISDIR(st.st_mode) and not stat.S_ISLNK(st.st_mode)))): + elif dstate != 'r' and not st: deleted.append(abs) if repo.ui.verbose or not m.exact(abs): rel = m.rel(abs)