148 manifest.manifest.__init__(self, opener) |
148 manifest.manifest.__init__(self, opener) |
149 bundlerevlog.__init__(self, opener, self.indexfile, bundle, |
149 bundlerevlog.__init__(self, opener, self.indexfile, bundle, |
150 linkmapper) |
150 linkmapper) |
151 |
151 |
152 class bundlefilelog(bundlerevlog, filelog.filelog): |
152 class bundlefilelog(bundlerevlog, filelog.filelog): |
153 def __init__(self, opener, path, bundle, linkmapper): |
153 def __init__(self, opener, path, bundle, linkmapper, repo): |
154 filelog.filelog.__init__(self, opener, path) |
154 filelog.filelog.__init__(self, opener, path) |
155 bundlerevlog.__init__(self, opener, self.indexfile, bundle, |
155 bundlerevlog.__init__(self, opener, self.indexfile, bundle, |
156 linkmapper) |
156 linkmapper) |
|
157 self._repo = repo |
|
158 |
|
159 def _file(self, f): |
|
160 self._repo.file(f) |
157 |
161 |
158 class bundlerepository(localrepo.localrepository): |
162 class bundlerepository(localrepo.localrepository): |
159 def __init__(self, ui, path, bundlename): |
163 def __init__(self, ui, path, bundlename): |
160 self._tempparent = None |
164 self._tempparent = None |
161 try: |
165 try: |
242 if f[0] == '/': |
246 if f[0] == '/': |
243 f = f[1:] |
247 f = f[1:] |
244 if f in self.bundlefilespos: |
248 if f in self.bundlefilespos: |
245 self.bundle.seek(self.bundlefilespos[f]) |
249 self.bundle.seek(self.bundlefilespos[f]) |
246 return bundlefilelog(self.sopener, f, self.bundle, |
250 return bundlefilelog(self.sopener, f, self.bundle, |
247 self.changelog.rev) |
251 self.changelog.rev, self) |
248 else: |
252 else: |
249 return filelog.filelog(self.sopener, f) |
253 return filelog.filelog(self.sopener, f) |
250 |
254 |
251 def close(self): |
255 def close(self): |
252 """Close assigned bundle file immediately.""" |
256 """Close assigned bundle file immediately.""" |