# HG changeset patch # User Pierre-Yves David # Date 1712350064 -7200 # Node ID c11d21faa73c19835abdd2cd84715642f5194a8d # Parent 5b99b64328f2a4a5e85f8992aa10d8a96f110f86 phases: introduce a performant efficient way to access revision in a set This will be useful in the next changesets. diff -r 5b99b64328f2 -r c11d21faa73c mercurial/phases.py --- a/mercurial/phases.py Fri Apr 05 14:13:47 2024 +0200 +++ b/mercurial/phases.py Fri Apr 05 22:47:44 2024 +0200 @@ -414,6 +414,27 @@ ] ) + def get_raw_set( + self, + repo: "localrepo.localrepository", + phase: int, + ) -> Set[int]: + """return the set of revision in that phase + + The returned set is not filtered and might contains revision filtered + for the passed repoview. + + The returned set might be the internal one and MUST NOT be mutated to + avoid side effect. + """ + if phase == public: + raise error.ProgrammingError("cannot get_set for public phase") + self._ensure_phase_sets(repo.unfiltered()) + revs = self._phasesets.get(phase) + if revs is None: + return set() + return revs + def getrevset( self, repo: "localrepo.localrepository",