diff mercurial/bundlerepo.py @ 28220:0209bdd553b9 stable

bundlerepo: properly handle hidden linkrev in filelog (issue4945) The bundlerepository have to do some special magic to handle linkrev of the bundlerepo filerev. 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.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Mon, 22 Feb 2016 18:35:40 +0100
parents 88609cfa3745
children 7a8c44844f57
line wrap: on
line diff
--- a/mercurial/bundlerepo.py	Tue Feb 23 11:41:47 2016 +0100
+++ b/mercurial/bundlerepo.py	Mon Feb 22 18:35:40 2016 +0100
@@ -362,7 +362,8 @@
 
         if f in self.bundlefilespos:
             self.bundle.seek(self.bundlefilespos[f])
-            return bundlefilelog(self.svfs, f, self.bundle, self.changelog.rev)
+            linkmapper = self.unfiltered().changelog.rev
+            return bundlefilelog(self.svfs, f, self.bundle, linkmapper)
         else:
             return filelog.filelog(self.svfs, f)