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."""