comparison mercurial/context.py @ 43764:f9068413bd0c

changectx: use unfiltered changelog to access parents of unfiltered revs If a revision is not filtered, we know that its parents are not either. So we can take a shortcut. This shortcut avoid the computation of all filtered revs in some cases. Differential Revision: https://phab.mercurial-scm.org/D7487
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 17 Nov 2019 08:50:21 +0100
parents 1e87851dba63
children f3b23d5c15fd
comparison
equal deleted inserted replaced
43763:3fd6ec54704c 43764:f9068413bd0c
521 return self._manifestctx.readdelta() 521 return self._manifestctx.readdelta()
522 522
523 @propertycache 523 @propertycache
524 def _parents(self): 524 def _parents(self):
525 repo = self._repo 525 repo = self._repo
526 p1, p2 = repo.changelog.parentrevs(self._rev) 526 if self._maybe_filtered:
527 cl = repo.changelog
528 else:
529 cl = repo.unfiltered().changelog
530
531 p1, p2 = cl.parentrevs(self._rev)
527 if p2 == nullrev: 532 if p2 == nullrev:
528 return [repo[p1]] 533 return [repo[p1]]
529 return [repo[p1], repo[p2]] 534 return [repo[p1], repo[p2]]
530 535
531 def changeset(self): 536 def changeset(self):