comparison mercurial/revset.py @ 43650:d212d657ba0e

revset: use field names instead of field numbers on scmutil.status As part of my pytype adventures I want to make scmutil.status no longer a subclass of tuple. This is part of that process. Differential Revision: https://phab.mercurial-scm.org/D7402
author Augie Fackler <augie@google.com>
date Thu, 14 Nov 2019 15:28:08 -0500
parents 61d7bca16dff
children 6c6d67fc45cb
comparison
equal deleted inserted replaced
43649:d649de29f1ff 43650:d212d657ba0e
671 The field parameter says which kind is desired: 671 The field parameter says which kind is desired:
672 0: modified 672 0: modified
673 1: added 673 1: added
674 2: removed 674 2: removed
675 """ 675 """
676 label = {0: 'modified', 1: 'added', 2: 'removed'}[field]
676 hasset = matchmod.patkind(pat) == b'set' 677 hasset = matchmod.patkind(pat) == b'set'
677 678
678 mcache = [None] 679 mcache = [None]
679 680
680 def matches(x): 681 def matches(x):
689 if fname not in c.files(): 690 if fname not in c.files():
690 return False 691 return False
691 else: 692 else:
692 if not any(m(f) for f in c.files()): 693 if not any(m(f) for f in c.files()):
693 return False 694 return False
694 files = repo.status(c.p1().node(), c.node())[field] 695 files = getattr(repo.status(c.p1().node(), c.node()), label)
695 if fname is not None: 696 if fname is not None:
696 if fname in files: 697 if fname in files:
697 return True 698 return True
698 else: 699 else:
699 if any(m(f) for f in files): 700 if any(m(f) for f in files):