comparison mercurial/dirstate.py @ 2022:a59da8cc35e4

New option -i/--ignored for 'hg status' to show ignored files. localrepo.changes() now returns an additional list of ignored files if it is called with show_ignored=True.
author Thomas Arendsen Hein <thomas@intevation.de>
date Wed, 29 Mar 2006 22:58:34 +0200
parents 11ffa1267185
children a514c7509fa9 5987c1eac2ce
comparison
equal deleted inserted replaced
2021:fc22ed56afe3 2022:a59da8cc35e4
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:
451 elif type_ == 'a': 454 elif type_ == 'a':
452 added.append(fn) 455 added.append(fn)
453 elif type_ == 'r': 456 elif type_ == 'r':
454 removed.append(fn) 457 removed.append(fn)
455 458
456 return (lookup, modified, added, removed, deleted, unknown) 459 return (lookup, modified, added, removed, deleted, unknown, ignored)