Mercurial > public > mercurial-scm > hg
comparison mercurial/bundlerepo.py @ 8260:54a4b520bd7d
localrepo: use propertycache
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 29 Apr 2009 20:47:15 -0500 |
parents | 0a9542703300 |
children | b87a50b7125c |
comparison
equal
deleted
inserted
replaced
8259:98acfd1d2b08 | 8260:54a4b520bd7d |
---|---|
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): |