comparison mercurial/dirstate.py @ 19191:ab9de1e8fc36

dirstate.status: avoid full walks when possible
author Siddharth Agarwal <sid0@fb.com>
date Tue, 23 Apr 2013 14:16:33 -0700
parents b03952ee634d
children 0ec31231afad
comparison
equal deleted inserted replaced
19190:b03952ee634d 19191:ab9de1e8fc36
805 copymap = self._copymap 805 copymap = self._copymap
806 lastnormaltime = self._lastnormaltime 806 lastnormaltime = self._lastnormaltime
807 807
808 lnkkind = stat.S_IFLNK 808 lnkkind = stat.S_IFLNK
809 809
810 for fn, st in self.walk(match, subrepos, listunknown, 810 # We need to do full walks when either
811 listignored).iteritems(): 811 # - we're listing all clean files, or
812 # - match.traversedir does something, because match.traversedir should
813 # be called for every dir in the working dir
814 full = listclean or match.traversedir is not None
815 for fn, st in self.walk(match, subrepos, listunknown, listignored,
816 full=full).iteritems():
812 if fn not in dmap: 817 if fn not in dmap:
813 if (listignored or mexact(fn)) and dirignore(fn): 818 if (listignored or mexact(fn)) and dirignore(fn):
814 if listignored: 819 if listignored:
815 iadd(fn) 820 iadd(fn)
816 elif listunknown: 821 elif listunknown: