diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py +++ b/mercurial/bundlerepo.py @@ -343,8 +343,7 @@ class bundlerepository(localrepo.localre self.manstart = self.bundle.tell() return c - @localrepo.unfilteredpropertycache - def manifest(self): + def _constructmanifest(self): self.bundle.seek(self.manstart) # consume the header if it exists self.bundle.manifestheader() diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -506,6 +506,12 @@ class localrepository(object): @storecache('00manifest.i') def manifest(self): + return self._constructmanifest() + + def _constructmanifest(self): + # This is a temporary function while we migrate from manifest to + # manifestlog. It allows bundlerepo and unionrepo to intercept the + # manifest creation. return manifest.manifest(self.svfs) @property diff --git a/mercurial/unionrepo.py b/mercurial/unionrepo.py --- a/mercurial/unionrepo.py +++ b/mercurial/unionrepo.py @@ -208,8 +208,7 @@ class unionrepository(localrepo.localrep node = self.repo2.changelog.node(rev2) return self.changelog.rev(node) - @localrepo.unfilteredpropertycache - def manifest(self): + def _constructmanifest(self): return unionmanifest(self.svfs, self.repo2.svfs, self.unfiltered()._clrev)