changeset 5259:8040f2e4cad0

bundle: fix up lazy reads
author Brendan Cully <brendan@kublai.com>
date Mon, 27 Aug 2007 17:08:53 -0700
parents a35756389ef4
children 0fc16031bb45
files mercurial/bundlerepo.py
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/bundlerepo.py
+++ b/mercurial/bundlerepo.py
@@ -199,12 +199,20 @@ class bundlerepository(localrepo.localre
     def __getattr__(self, name):
         if name == 'changelog':
             self.changelog = bundlechangelog(self.sopener, self.bundlefile)
+            self.manstart = self.bundlefile.tell()
             return self.changelog
         if name == 'manifest':
+            self.bundlefile.seek(self.manstart)
             self.manifest = bundlemanifest(self.sopener, self.bundlefile,
                                            self.changelog.rev)
             self.filestart = self.bundlefile.tell()
             return self.manifest
+        if name == 'manstart':
+            self.changelog
+            return self.manstart
+        if name == 'filestart':
+            self.manifest
+            return self.filestart
         return localrepo.localrepository.__getattr__(self, name)
 
     def url(self):
@@ -215,7 +223,6 @@ class bundlerepository(localrepo.localre
 
     def file(self, f):
         if not self.bundlefilespos:
-            self.manifest
             self.bundlefile.seek(self.filestart)
             while 1:
                 chunk = changegroup.getchunk(self.bundlefile)