##// END OF EJS Templates
dirstate: improve case-folding logic...
Matt Mackall -
r6756:d56ceb82 default
parent child Browse files
Show More
@@ -560,9 +560,10 b' class dirstate(object):'
560 continue
560 continue
561 for f, kind, st in entries:
561 for f, kind, st in entries:
562 np = pconvert(join(nd, f))
562 np = pconvert(join(nd, f))
563 nn = self.normalize(np)
563 if np in known:
564 if np in known:
564 continue
565 continue
565 known[np] = 1
566 known[nn] = 1
566 p = join(top, f)
567 p = join(top, f)
567 # don't trip over symlinks
568 # don't trip over symlinks
568 if kind == stat.S_IFDIR:
569 if kind == stat.S_IFDIR:
@@ -571,12 +572,12 b' class dirstate(object):'
571 if hasattr(match, 'dir'):
572 if hasattr(match, 'dir'):
572 match.dir(np)
573 match.dir(np)
573 if np in dc and match(np):
574 if np in dc and match(np):
574 add((np, 'm', st))
575 add((nn, 'm', st))
575 elif imatch(np):
576 elif imatch(np):
576 if supported(np, st.st_mode):
577 if supported(np, st.st_mode):
577 add((np, 'f', st))
578 add((nn, 'f', st))
578 elif np in dc:
579 elif np in dc:
579 add((np, 'm', st))
580 add((nn, 'm', st))
580 found.sort()
581 found.sort()
581 return found
582 return found
582
583
@@ -584,6 +585,7 b' class dirstate(object):'
584 files.sort()
585 files.sort()
585 for ff in files:
586 for ff in files:
586 nf = normpath(ff)
587 nf = normpath(ff)
588 nn = self.normalize(nf)
587 f = _join(ff)
589 f = _join(ff)
588 try:
590 try:
589 st = lstat(f)
591 st = lstat(f)
@@ -604,9 +606,9 b' class dirstate(object):'
604 for f, src, st in findfiles(f):
606 for f, src, st in findfiles(f):
605 yield src, f, st
607 yield src, f, st
606 else:
608 else:
607 if nf in known:
609 if nn in known:
608 continue
610 continue
609 known[nf] = 1
611 known[nn] = 1
610 if match(nf):
612 if match(nf):
611 if supported(ff, st.st_mode, verbose=True):
613 if supported(ff, st.st_mode, verbose=True):
612 yield 'f', self.normalize(nf), st
614 yield 'f', self.normalize(nf), st
General Comments 0
You need to be logged in to leave comments. Login now