# HG changeset patch # User Siddharth Agarwal # Date 1364939374 25200 # 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 -r ec91b66e8965 -r 6de8cd5c719a mercurial/scmutil.py --- a/mercurial/scmutil.py Tue Apr 02 14:46:55 2013 -0700 +++ b/mercurial/scmutil.py Tue Apr 02 14:49:34 2013 -0700 @@ -686,8 +686,7 @@ 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)