mercurial/bundlerepo.py
changeset 8260 54a4b520bd7d
parent 8227 0a9542703300
child 8312 b87a50b7125c
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):