# HG changeset patch # User Martin von Zweigbergk # Date 2018-06-11 18:37:21 # Node ID f1d55ae2c5c8b457454c133366178304bce9c2f4 # Parent 99188a7c87177ea712e546b0d9783b7ac065b030 revsets: define a none() revset This can be useful for default values in corp-wide configuration (e.g. for commits to hide, which defaults to none()), and perhaps in scripts. I named it none() rather than empty() to match all(). Differential Revision: https://phab.mercurial-scm.org/D3713 diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -1346,6 +1346,14 @@ def node_(repo, subset, x): result = baseset([rn]) return result & subset +@predicate('none()', safe=True) +def none(repo, subset, x): + """No changesets. + """ + # i18n: "none" is a keyword + getargs(x, 0, 0, _("none takes no arguments")) + return baseset() + @predicate('obsolete()', safe=True) def obsolete(repo, subset, x): """Mutable changeset with a newer version.""" diff --git a/tests/test-revset2.t b/tests/test-revset2.t --- a/tests/test-revset2.t +++ b/tests/test-revset2.t @@ -584,6 +584,9 @@ test empty string hg: parse error: empty string is not a valid revision [255] +test empty revset + $ hg log 'none()' + we can use patterns when searching for tags $ log 'tag("1..*")'