[PATCH STABLE?] revset: add a hidden revset symbol

Pierre-Yves David pierre-yves.david at ens-lyon.org
Sat Jan 7 07:53:26 CST 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1325842099 -3600
# Node ID 7bd581da2afd75fc603a1469e3af20539e44672b
# Parent  7058a6c38ba712ca1560c2fe9f4212d58bae5a93
revset: add a hidden revset symbol

Also update the revset test to allow any number of argument for the ``log``
function.

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -517,6 +517,13 @@
     ps = set(parents(repo, subset, x))
     return [r for r in s if r not in ps]
 
+def hidden(repo, subset, x):
+    """``hidden()``
+    Hidden changeset.
+    """
+    getargs(x, 0, 0, _("hidden takes no arguments"))
+    return [r for r in subset if r in repo.changelog.hiddenrevs]
+
 def keyword(repo, subset, x):
     """``keyword(string)``
     Search commit message, user name, and names of changed files for
@@ -868,6 +875,7 @@
     "grep": grep,
     "head": head,
     "heads": heads,
+    "hidden": hidden,
     "id": node,
     "keyword": keyword,
     "last": last,
diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -8,7 +8,9 @@
   > }
 
   $ log() {
-  >   hg log --template '{rev}\n' -r "$1"
+  >   revset=$1
+  >   shift
+  >   hg log --template '{rev}\n' -r "$revset" $@
   > }
 
   $ hg init repo
@@ -360,6 +362,28 @@
   $ log '4::8 - 8'
   4
 
+setup basic hidden extension for testing hidden symbol
+
+  $ cat > $HGTMP/testhidden.py << EOF
+  > def reposetup(ui, repo):
+  >     for line in repo.opener('hidden'):
+  >         ctx = repo[line.strip()]
+  >         repo.changelog.hiddenrevs.add(ctx.rev())
+  > EOF
+  $ echo '[extensions]' >> $HGRCPATH
+  $ echo "hidden=$HGTMP/testhidden.py" >> $HGRCPATH
+  $ touch .hg/hidden
+  $ hg log --template='{node}\n' -r "8::" > a765632148dc55d38c35c4f247c618701886cb2f > .hg/hidden
+  $ log 'hidden()' --hidden
+  8
+  9
+  $ log '(4+8) and hidden()' --hidden
+  8
+
+clear extensions configuration
+  $ echo '[extensions]' >> $HGRCPATH
+  $ echo "hidden=!" >> $HGRCPATH
+
 issue2437
 
   $ log '3 and p1(5)'


More information about the Mercurial-devel mailing list