Mercurial > hg
comparison mercurial/bundlerepo.py @ 14287:7c231754a621
filelog: add file function to open other filelogs
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Tue, 10 May 2011 17:38:58 +0200 |
parents | 8aab5a82685f |
children | 9ac479758d3b |
comparison
equal
deleted
inserted
replaced
14286:005a540e9aee | 14287:7c231754a621 |
---|---|
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.""" |