Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 43784: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
43783:3fd6ec54704c | 43784: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): |