##// END OF EJS Templates
dirstate: walk returns None for files that have a symlink in their path...
Durham Goode -
r18625:2cbd27f4 default
parent child Browse files
Show More
@@ -677,9 +677,26 b' class dirstate(object):'
677 # step 3: report unseen items in the dmap hash
677 # step 3: report unseen items in the dmap hash
678 if not skipstep3 and not exact:
678 if not skipstep3 and not exact:
679 visit = sorted([f for f in dmap if f not in results and matchfn(f)])
679 visit = sorted([f for f in dmap if f not in results and matchfn(f)])
680 nf = iter(visit).next
680 if unknown:
681 for st in util.statfiles([join(i) for i in visit]):
681 # unknown == True means we walked the full directory tree above.
682 results[nf()] = st
682 # So if a file is not seen it was either a) not matching matchfn
683 # b) ignored, c) missing, or d) under a symlink directory.
684 audit_path = scmutil.pathauditor(self._root)
685
686 for nf in iter(visit):
687 # Report ignored items in the dmap as long as they are not
688 # under a symlink directory.
689 if ignore(nf) and audit_path.check(nf):
690 results[nf] = util.statfiles([join(nf)])[0]
691 else:
692 # It's either missing or under a symlink directory
693 results[nf] = None
694 else:
695 # We may not have walked the full directory tree above,
696 # so stat everything we missed.
697 nf = iter(visit).next
698 for st in util.statfiles([join(i) for i in visit]):
699 results[nf()] = st
683 for s in subrepos:
700 for s in subrepos:
684 del results[s]
701 del results[s]
685 del results['.hg']
702 del results['.hg']
@@ -149,6 +149,10 b' directory moved and symlinked'
149 adding foo/a
149 adding foo/a
150 $ mv foo bar
150 $ mv foo bar
151 $ ln -s bar foo
151 $ ln -s bar foo
152 $ hg status
153 ! foo/a
154 ? bar/a
155 ? foo
152
156
153 now addremove should remove old files
157 now addremove should remove old files
154
158
General Comments 0
You need to be logged in to leave comments. Login now