D7483: changectx: add a "maybe filtered" filtered attribute
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Sun Nov 24 00:21:31 UTC 2019
marmoute updated this revision to Diff 18362.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7483?vs=18290&id=18362
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7483/new/
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,17 @@
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
+ # When maybe_filtered is True, the revision might be affected by
+ # changelog filtering and operation through the filtered changelog must be used.
+ #
+ # When maybe_filtered is False, the revision has already been checked
+ # against filtering and is not filtered. Operation through the
+ # unfiltered changelog might be used in some case.
+ self._maybe_filtered = maybe_filtered
def __hash__(self):
try:
@@ -495,7 +502,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: martinvonz, indygreg, mercurial-devel
More information about the Mercurial-devel
mailing list