comparison mercurial/dirstate.py @ 1224:cc61d366bc3b

Fix Windows status problem from new dirstate walk code
author mpm@selenic.com
date Thu, 08 Sep 2005 15:01:33 -0700
parents d9e85a75dbda
children db950da49539
comparison
equal deleted inserted replaced
1223:8d43f8c0b836 1224:cc61d366bc3b
216 dc = self.map.copy() 216 dc = self.map.copy()
217 elif not dc: 217 elif not dc:
218 dc = self.filterfiles(files) 218 dc = self.filterfiles(files)
219 219
220 def statmatch(file, stat): 220 def statmatch(file, stat):
221 file = util.pconvert(file)
221 if file not in dc and self.ignore(file): 222 if file not in dc and self.ignore(file):
222 return False 223 return False
223 return match(file) 224 return match(file)
225
224 return self.walkhelper(files=files, statmatch=statmatch, dc=dc) 226 return self.walkhelper(files=files, statmatch=statmatch, dc=dc)
225 227
226 # walk recursively through the directory tree, finding all files 228 # walk recursively through the directory tree, finding all files
227 # matched by the statmatch function 229 # matched by the statmatch function
228 # 230 #
229 # results are yielded in a tuple (src, filename), where src is one of: 231 # results are yielded in a tuple (src, filename), where src is one of:
230 # 'f' the file was found in the directory tree 232 # 'f' the file was found in the directory tree
231 # 'm' the file was only in the dirstate and not in the tree 233 # 'm' the file was only in the dirstate and not in the tree
232 # 234 #
233 # dc is an optional arg for the current dirstate. dc is not modified 235 # dc is an optional arg for the current dirstate. dc is not modified
322 324
323 # statmatch function to eliminate entries from the dirstate copy 325 # statmatch function to eliminate entries from the dirstate copy
324 # and put files into the appropriate array. This gets passed 326 # and put files into the appropriate array. This gets passed
325 # to the walking code 327 # to the walking code
326 def statmatch(fn, s): 328 def statmatch(fn, s):
329 fn = util.pconvert(fn)
327 def checkappend(l, fn): 330 def checkappend(l, fn):
328 if match is util.always or match(fn): 331 if match is util.always or match(fn):
329 l.append(fn) 332 l.append(fn)
330 333
331 if not s or stat.S_ISDIR(s.st_mode): 334 if not s or stat.S_ISDIR(s.st_mode):
332 return self.ignore(fn) and False or match(fn) 335 return self.ignore(fn) and False or match(fn)
333 336
334 if not stat.S_ISREG(s.st_mode): 337 if not stat.S_ISREG(s.st_mode):
335 return False 338 return False