# HG changeset patch # User Pierre-Yves David # Date 1678269630 -3600 # Node ID 386737600689fbe530bcfc37021a7a5019cb4581 # Parent 71a2c061865d64e9b1b03bf53a5fe4ea6e8c3b25 revset: add `_internal()` predicate This predicate help core code to select internal changeset (in the internal phase). diff -r 71a2c061865d -r 386737600689 mercurial/phases.py --- a/mercurial/phases.py Fri Mar 10 03:41:18 2023 +0100 +++ b/mercurial/phases.py Wed Mar 08 11:00:30 2023 +0100 @@ -172,6 +172,10 @@ remotehiddenphases = (secret, archived, internal) localhiddenphases = (internal, archived) +all_internal_phases = tuple(p for p in allphases if p & internal) +# We do not want any internal content to exit the repository, ever. +no_bundle_phases = all_internal_phases + def supportinternal(repo): # type: (localrepo.localrepository) -> bool diff -r 71a2c061865d -r 386737600689 mercurial/revset.py --- a/mercurial/revset.py Fri Mar 10 03:41:18 2023 +0100 +++ b/mercurial/revset.py Wed Mar 08 11:00:30 2023 +0100 @@ -1967,6 +1967,12 @@ return repo._phasecache.getrevset(repo, targets, subset) +@predicate(b'_internal()', safe=True) +def _internal(repo, subset, x): + getargs(x, 0, 0, _(b"_internal takes no arguments")) + return _phase(repo, subset, *phases.all_internal_phases) + + @predicate(b'_phase(idx)', safe=True) def phase(repo, subset, x): l = getargs(x, 1, 1, b"_phase requires one argument")