292 self.ui.warn(_('%s: unsupported file type (type is %s)\n') % ( |
292 self.ui.warn(_('%s: unsupported file type (type is %s)\n') % ( |
293 util.pathto(self.getcwd(), f), |
293 util.pathto(self.getcwd(), f), |
294 kind)) |
294 kind)) |
295 return False |
295 return False |
296 |
296 |
297 def statwalk(self, files=None, match=util.always, dc=None): |
297 def statwalk(self, files=None, match=util.always, dc=None, ignored=False): |
298 self.lazyread() |
298 self.lazyread() |
299 |
299 |
300 # walk all files by default |
300 # walk all files by default |
301 if not files: |
301 if not files: |
302 files = [self.root] |
302 files = [self.root] |
305 elif not dc: |
305 elif not dc: |
306 dc = self.filterfiles(files) |
306 dc = self.filterfiles(files) |
307 |
307 |
308 def statmatch(file_, stat): |
308 def statmatch(file_, stat): |
309 file_ = util.pconvert(file_) |
309 file_ = util.pconvert(file_) |
310 if file_ not in dc and self.ignore(file_): |
310 if not ignored and file_ not in dc and self.ignore(file_): |
311 return False |
311 return False |
312 return match(file_) |
312 return match(file_) |
313 |
313 |
314 return self.walkhelper(files=files, statmatch=statmatch, dc=dc) |
314 return self.walkhelper(files=files, statmatch=statmatch, dc=dc) |
315 |
315 |
407 ks.sort() |
407 ks.sort() |
408 for k in ks: |
408 for k in ks: |
409 if not seen(k) and (statmatch(k, None)): |
409 if not seen(k) and (statmatch(k, None)): |
410 yield 'm', k, None |
410 yield 'm', k, None |
411 |
411 |
412 def changes(self, files=None, match=util.always): |
412 def changes(self, files=None, match=util.always, show_ignored=None): |
413 lookup, modified, added, unknown = [], [], [], [] |
413 lookup, modified, added, unknown, ignored = [], [], [], [], [] |
414 removed, deleted = [], [] |
414 removed, deleted = [], [] |
415 |
415 |
416 for src, fn, st in self.statwalk(files, match): |
416 for src, fn, st in self.statwalk(files, match, ignored=show_ignored): |
417 try: |
417 try: |
418 type_, mode, size, time = self[fn] |
418 type_, mode, size, time = self[fn] |
419 except KeyError: |
419 except KeyError: |
420 unknown.append(fn) |
420 if show_ignored and self.ignore(fn): |
|
421 ignored.append(fn) |
|
422 else: |
|
423 unknown.append(fn) |
421 continue |
424 continue |
422 if src == 'm': |
425 if src == 'm': |
423 nonexistent = True |
426 nonexistent = True |
424 if not st: |
427 if not st: |
425 try: |
428 try: |