Show More
@@ -20,6 +20,7 b' class dirstate(object):' | |||||
20 | self.dirty = 0 |
|
20 | self.dirty = 0 | |
21 | self.ui = ui |
|
21 | self.ui = ui | |
22 | self.map = None |
|
22 | self.map = None | |
|
23 | self.fp = None | |||
23 | self.pl = None |
|
24 | self.pl = None | |
24 | self.dirs = None |
|
25 | self.dirs = None | |
25 | self.copymap = {} |
|
26 | self.copymap = {} | |
@@ -133,12 +134,28 b' class dirstate(object):' | |||||
133 | self.lazyread() |
|
134 | self.lazyread() | |
134 | return self[key] |
|
135 | return self[key] | |
135 |
|
136 | |||
|
137 | _unknown = ('?', 0, 0, 0) | |||
|
138 | ||||
|
139 | def get(self, key): | |||
|
140 | try: | |||
|
141 | return self[key] | |||
|
142 | except KeyError: | |||
|
143 | return self._unknown | |||
|
144 | ||||
136 | def __contains__(self, key): |
|
145 | def __contains__(self, key): | |
137 | self.lazyread() |
|
146 | self.lazyread() | |
138 | return key in self.map |
|
147 | return key in self.map | |
139 |
|
148 | |||
140 | def parents(self): |
|
149 | def parents(self): | |
141 |
self. |
|
150 | if self.pl is None: | |
|
151 | self.pl = [nullid, nullid] | |||
|
152 | try: | |||
|
153 | self.fp = self.opener('dirstate') | |||
|
154 | st = self.fp.read(40) | |||
|
155 | if len(st) == 40: | |||
|
156 | self.pl = st[:20], st[20:40] | |||
|
157 | except IOError, err: | |||
|
158 | if err.errno != errno.ENOENT: raise | |||
142 | return self.pl |
|
159 | return self.pl | |
143 |
|
160 | |||
144 | def branch(self): |
|
161 | def branch(self): | |
@@ -202,6 +219,11 b' class dirstate(object):' | |||||
202 | self.map = {} |
|
219 | self.map = {} | |
203 | self.pl = [nullid, nullid] |
|
220 | self.pl = [nullid, nullid] | |
204 | try: |
|
221 | try: | |
|
222 | if self.fp: | |||
|
223 | self.fp.seek(0) | |||
|
224 | st = self.fp.read() | |||
|
225 | self.fp = None | |||
|
226 | else: | |||
205 | st = self.opener("dirstate").read() |
|
227 | st = self.opener("dirstate").read() | |
206 | if st: |
|
228 | if st: | |
207 | self.parse(st) |
|
229 | self.parse(st) |
General Comments 0
You need to be logged in to leave comments.
Login now