207 raise util.Abort(_("%s: unknown bundle compression type") |
207 raise util.Abort(_("%s: unknown bundle compression type") |
208 % bundlename) |
208 % bundlename) |
209 # dict with the mapping 'filename' -> position in the bundle |
209 # dict with the mapping 'filename' -> position in the bundle |
210 self.bundlefilespos = {} |
210 self.bundlefilespos = {} |
211 |
211 |
212 def __getattr__(self, name): |
212 @util.propertycache |
213 if name == 'changelog': |
213 def changelog(self): |
214 self.changelog = bundlechangelog(self.sopener, self.bundlefile) |
214 c = bundlechangelog(self.sopener, self.bundlefile) |
215 self.manstart = self.bundlefile.tell() |
215 self.manstart = self.bundlefile.tell() |
216 return self.changelog |
216 return c |
217 elif name == 'manifest': |
217 |
218 self.bundlefile.seek(self.manstart) |
218 @util.propertycache |
219 self.manifest = bundlemanifest(self.sopener, self.bundlefile, |
219 def manifest(self): |
220 self.changelog.rev) |
220 self.bundlefile.seek(self.manstart) |
221 self.filestart = self.bundlefile.tell() |
221 m = bundlemanifest(self.sopener, self.bundlefile, self.changelog.rev) |
222 return self.manifest |
222 self.filestart = self.bundlefile.tell() |
223 elif name == 'manstart': |
223 return m |
224 self.changelog |
224 |
225 return self.manstart |
225 @util.propertycache |
226 elif name == 'filestart': |
226 def manstart(self): |
227 self.manifest |
227 self.changelog |
228 return self.filestart |
228 return self.manstart |
229 else: |
229 |
230 return localrepo.localrepository.__getattr__(self, name) |
230 @util.propertycache |
|
231 def filestart(self): |
|
232 self.manifest |
|
233 return self.filestart |
231 |
234 |
232 def url(self): |
235 def url(self): |
233 return self._url |
236 return self._url |
234 |
237 |
235 def file(self, f): |
238 def file(self, f): |