[PATCH 4 of 5] hidden: add a "hidden revset" symbol
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Wed Jun 15 10:26:44 CDT 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1308151534 -7200
# Node ID 8e5dafffa5612f854938cfa95a6a8204ab3b521c
# Parent dd7f89674a075e080ae50c845e1d6bab31ba7563
hidden: add a "hidden revset" symbol
This symbol match all changesets actually hidden.
Beware that log don't display such changeset by default. you have to use the
``--hidden`` flag.
diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -806,10 +806,26 @@ def user(repo, subset, x):
"""``user(string)``
User name contains string. The match is case-insensitive.
"""
return author(repo, subset, x)
+def hidden(repo, subset, x):
+ """hidden()
+
+ This symbol match all changesets actually hidden.
+
+ Beware that log don't display such changeset by default. you have to use the
+ ``--hidden`` flag.
+ """
+ args = getargs(x, 0, 1, 'publicheads take 0 to 1 argument')
+ if args:
+ s = getset(repo, subset, x)
+ else:
+ s = subset
+ return [r for r in s if repo.changelog.hidden(r)]
+
+
symbols = {
"adds": adds,
"all": getall,
"ancestor": ancestor,
"ancestors": ancestors,
@@ -847,10 +863,11 @@ symbols = {
"roots": roots,
"sort": sort,
"tag": tag,
"tagged": tagged,
"user": user,
+ "hidden": hidden,
}
methods = {
"range": rangeset,
"string": stringset,
diff --git a/tests/test-log.t b/tests/test-log.t
--- a/tests/test-log.t
+++ b/tests/test-log.t
@@ -1378,6 +1378,14 @@ init repo complex
branch: default
commit: (clean)
update: 7 new changesets, 3 branch heads (merge)
hidden: 3 hidden changesets
4 changesets revealed by their children
-
+ $ hg log -r 'hidden()' --template='{rev}\n'
+ $ hg log --hidden -r 'hidden()' --template='{rev}\n'
+ 8
+ 11
+ 12
+ $ hg log -r 'hidden(10:tip)' --template='{rev}\n'
+ $ hg log --hidden -r 'hidden(10:tip)' --template='{rev}\n'
+ 11
+ 12
More information about the Mercurial-devel
mailing list