Mercurial > public > mercurial-scm > hg
comparison mercurial/bundlerepo.py @ 28186:5ab6f0fde75f
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 |
comparison
equal
deleted
inserted
replaced
28185:c7e8948627f3 | 28186:5ab6f0fde75f |
---|---|
360 if not c: | 360 if not c: |
361 break | 361 break |
362 | 362 |
363 if f in self.bundlefilespos: | 363 if f in self.bundlefilespos: |
364 self.bundle.seek(self.bundlefilespos[f]) | 364 self.bundle.seek(self.bundlefilespos[f]) |
365 return bundlefilelog(self.svfs, f, self.bundle, self.changelog.rev) | 365 linkmapper = self.unfiltered().changelog.rev |
366 return bundlefilelog(self.svfs, f, self.bundle, linkmapper) | |
366 else: | 367 else: |
367 return filelog.filelog(self.svfs, f) | 368 return filelog.filelog(self.svfs, f) |
368 | 369 |
369 def close(self): | 370 def close(self): |
370 """Close assigned bundle file immediately.""" | 371 """Close assigned bundle file immediately.""" |