diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py +++ b/mercurial/bundlerepo.py @@ -150,10 +150,14 @@ class bundlemanifest(bundlerevlog, manif linkmapper) class bundlefilelog(bundlerevlog, filelog.filelog): - def __init__(self, opener, path, bundle, linkmapper): + def __init__(self, opener, path, bundle, linkmapper, repo): filelog.filelog.__init__(self, opener, path) bundlerevlog.__init__(self, opener, self.indexfile, bundle, linkmapper) + self._repo = repo + + def _file(self, f): + self._repo.file(f) class bundlerepository(localrepo.localrepository): def __init__(self, ui, path, bundlename): @@ -244,7 +248,7 @@ class bundlerepository(localrepo.localre if f in self.bundlefilespos: self.bundle.seek(self.bundlefilespos[f]) return bundlefilelog(self.sopener, f, self.bundle, - self.changelog.rev) + self.changelog.rev, self) else: return filelog.filelog(self.sopener, f) diff --git a/mercurial/filelog.py b/mercurial/filelog.py --- a/mercurial/filelog.py +++ b/mercurial/filelog.py @@ -87,3 +87,6 @@ class filelog(revlog.revlog): return t2 != text return True + + def _file(self, f): + return filelog(self.opener, f)