bundlerepo: properly handle hidden linkrev in manifestlog (
issue4945)
The bundlerepository have to do some special magic to handle linkrev of the
bundled manifest. That logic was done from a repoview and obsolescence marker
affecting bundled changeset could lead to a crash. We now ensure we operate on
unfiltered repository.
--- a/mercurial/bundlerepo.py Mon Feb 22 18:35:40 2016 +0100
+++ b/mercurial/bundlerepo.py Mon Feb 22 23:34:54 2016 +0100
@@ -325,7 +325,8 @@
self.bundle.seek(self.manstart)
# consume the header if it exists
self.bundle.manifestheader()
- m = bundlemanifest(self.svfs, self.bundle, self.changelog.rev)
+ linkmapper = self.unfiltered().changelog.rev
+ m = bundlemanifest(self.svfs, self.bundle, linkmapper)
# XXX: hack to work with changegroup3, but we still don't handle
# tree manifests correctly
if self.bundle.version == "03":