60 parsers = policy.importmod('parsers') |
60 parsers = policy.importmod('parsers') |
61 |
61 |
62 termsize = scmplatform.termsize |
62 termsize = scmplatform.termsize |
63 |
63 |
64 |
64 |
65 class status(tuple): |
65 @attr.s(slots=True, repr=False) |
66 '''Named tuple with a list of files per status. The 'deleted', 'unknown' |
66 class status(object): |
67 and 'ignored' properties are only relevant to the working copy. |
67 '''Struct with a list of files per status. |
|
68 |
|
69 The 'deleted', 'unknown' and 'ignored' properties are only |
|
70 relevant to the working copy. |
68 ''' |
71 ''' |
69 |
72 |
70 __slots__ = () |
73 modified = attr.ib(default=list) |
71 |
74 added = attr.ib(default=list) |
72 def __new__( |
75 removed = attr.ib(default=list) |
73 cls, modified, added, removed, deleted, unknown, ignored, clean |
76 deleted = attr.ib(default=list) |
74 ): |
77 unknown = attr.ib(default=list) |
75 return tuple.__new__( |
78 ignored = attr.ib(default=list) |
76 cls, (modified, added, removed, deleted, unknown, ignored, clean) |
79 clean = attr.ib(default=list) |
77 ) |
80 |
78 |
81 def __iter__(self): |
79 @property |
82 yield self.modified |
80 def modified(self): |
83 yield self.added |
81 '''files that have been modified''' |
84 yield self.removed |
82 return self[0] |
85 yield self.deleted |
83 |
86 yield self.unknown |
84 @property |
87 yield self.ignored |
85 def added(self): |
88 yield self.clean |
86 '''files that have been added''' |
89 |
87 return self[1] |
90 def __repr__(self): |
88 |
|
89 @property |
|
90 def removed(self): |
|
91 '''files that have been removed''' |
|
92 return self[2] |
|
93 |
|
94 @property |
|
95 def deleted(self): |
|
96 '''files that are in the dirstate, but have been deleted from the |
|
97 working copy (aka "missing") |
|
98 ''' |
|
99 return self[3] |
|
100 |
|
101 @property |
|
102 def unknown(self): |
|
103 '''files not in the dirstate that are not ignored''' |
|
104 return self[4] |
|
105 |
|
106 @property |
|
107 def ignored(self): |
|
108 '''files not in the dirstate that are ignored (by _dirignore())''' |
|
109 return self[5] |
|
110 |
|
111 @property |
|
112 def clean(self): |
|
113 '''files that have not been modified''' |
|
114 return self[6] |
|
115 |
|
116 def __repr__(self, *args, **kwargs): |
|
117 return ( |
91 return ( |
118 r'<status modified=%s, added=%s, removed=%s, deleted=%s, ' |
92 r'<status modified=%s, added=%s, removed=%s, deleted=%s, ' |
119 r'unknown=%s, ignored=%s, clean=%s>' |
93 r'unknown=%s, ignored=%s, clean=%s>' |
120 ) % tuple(pycompat.sysstr(stringutil.pprint(v)) for v in self) |
94 ) % tuple(pycompat.sysstr(stringutil.pprint(v)) for v in self) |
121 |
95 |