equal
deleted
inserted
replaced
18 def __init__(self, opener, ui, root): |
18 def __init__(self, opener, ui, root): |
19 self.opener = opener |
19 self.opener = opener |
20 self.root = root |
20 self.root = root |
21 self.dirty = 0 |
21 self.dirty = 0 |
22 self.ui = ui |
22 self.ui = ui |
23 self.fp = None |
|
24 self.pl = None |
|
25 self.dirs = None |
23 self.dirs = None |
26 self.copymap = {} |
|
27 self.ignorefunc = None |
24 self.ignorefunc = None |
28 self._branch = None |
|
29 self._slash = None |
25 self._slash = None |
30 |
26 |
31 def __getattr__(self, name): |
27 def __getattr__(self, name): |
32 if name == 'map': |
28 if name == 'map': |
33 self.read() |
29 self.read() |
34 return self.map |
30 return self.map |
|
31 elif name == 'copymap': |
|
32 self.read() |
|
33 return self.copymap |
|
34 elif name == '_branch': |
|
35 try: |
|
36 self._branch = self.opener("branch").read().strip()\ |
|
37 or "default" |
|
38 except IOError: |
|
39 self._branch = "default" |
|
40 return self._branch |
|
41 elif name == 'pl': |
|
42 self.pl = [nullid, nullid] |
|
43 try: |
|
44 st = self.opener("dirstate").read(40) |
|
45 if len(st) == 40: |
|
46 self.pl = st[:20], st[20:40] |
|
47 except IOError, err: |
|
48 if err.errno != errno.ENOENT: raise |
|
49 return self.pl |
35 else: |
50 else: |
36 raise AttributeError, name |
51 raise AttributeError, name |
37 |
52 |
38 def wjoin(self, f): |
53 def wjoin(self, f): |
39 return os.path.join(self.root, f) |
54 return os.path.join(self.root, f) |
160 |
175 |
161 def __contains__(self, key): |
176 def __contains__(self, key): |
162 return key in self.map |
177 return key in self.map |
163 |
178 |
164 def parents(self): |
179 def parents(self): |
165 if self.pl is None: |
|
166 self.pl = [nullid, nullid] |
|
167 try: |
|
168 self.fp = self.opener('dirstate') |
|
169 st = self.fp.read(40) |
|
170 if len(st) == 40: |
|
171 self.pl = st[:20], st[20:40] |
|
172 except IOError, err: |
|
173 if err.errno != errno.ENOENT: raise |
|
174 return self.pl |
180 return self.pl |
175 |
181 |
176 def branch(self): |
182 def branch(self): |
177 if not self._branch: |
|
178 try: |
|
179 self._branch = self.opener("branch").read().strip()\ |
|
180 or "default" |
|
181 except IOError: |
|
182 self._branch = "default" |
|
183 return self._branch |
183 return self._branch |
184 |
184 |
185 def markdirty(self): |
185 def markdirty(self): |
186 if not self.dirty: |
186 if not self.dirty: |
187 self.dirty = 1 |
187 self.dirty = 1 |
225 map[f] = e[:4] |
225 map[f] = e[:4] |
226 pos = newpos |
226 pos = newpos |
227 |
227 |
228 def read(self): |
228 def read(self): |
229 self.map = {} |
229 self.map = {} |
|
230 self.copymap = {} |
230 self.pl = [nullid, nullid] |
231 self.pl = [nullid, nullid] |
231 try: |
232 try: |
232 if self.fp: |
233 st = self.opener("dirstate").read() |
233 self.fp.seek(0) |
|
234 st = self.fp.read() |
|
235 self.fp = None |
|
236 else: |
|
237 st = self.opener("dirstate").read() |
|
238 if st: |
234 if st: |
239 self.parse(st) |
235 self.parse(st) |
240 except IOError, err: |
236 except IOError, err: |
241 if err.errno != errno.ENOENT: raise |
237 if err.errno != errno.ENOENT: raise |
242 |
238 |