equal
deleted
inserted
replaced
18 self.opener = opener |
18 self.opener = opener |
19 self.root = root |
19 self.root = root |
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 = {} |
26 self.ignorefunc = None |
27 self.ignorefunc = None |
27 self._branch = None |
28 self._branch = None |
131 return self.map[key] |
132 return self.map[key] |
132 except TypeError: |
133 except TypeError: |
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.lazyread() |
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): |
145 if not self._branch: |
162 if not self._branch: |
146 try: |
163 try: |
200 |
217 |
201 def read(self): |
218 def read(self): |
202 self.map = {} |
219 self.map = {} |
203 self.pl = [nullid, nullid] |
220 self.pl = [nullid, nullid] |
204 try: |
221 try: |
205 st = self.opener("dirstate").read() |
222 if self.fp: |
|
223 self.fp.seek(0) |
|
224 st = self.fp.read() |
|
225 self.fp = None |
|
226 else: |
|
227 st = self.opener("dirstate").read() |
206 if st: |
228 if st: |
207 self.parse(st) |
229 self.parse(st) |
208 except IOError, err: |
230 except IOError, err: |
209 if err.errno != errno.ENOENT: raise |
231 if err.errno != errno.ENOENT: raise |
210 |
232 |