[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