marmoute created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY There are changeset that we know not to be filtered (eg: `null`). In this case, we could access some information without triggering changelog filtering. We add an attribute to changectx that track this property. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D7483 AFFECTED FILES mercurial/context.py CHANGE DETAILS diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -477,10 +477,11 @@ changeset convenient. It represents a read-only context already present in the repo.""" - def __init__(self, repo, rev, node): + def __init__(self, repo, rev, node, maybe_filtered=True): super(changectx, self).__init__(repo) self._rev = rev self._node = node + self._maybe_filtered = maybe_filtered def __hash__(self): try: @@ -495,7 +496,11 @@ @propertycache def _changeset(self): - return self._repo.changelog.changelogrevision(self.rev()) + if self._maybe_filtered: + repo = self._repo + else: + repo = self._repo.unfiltered() + return repo.changelog.changelogrevision(self.rev()) @propertycache def _manifest(self): To: marmoute, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel