[PATCH] graphlog: implement --hidden

Patrick Mezard patrick at mezard.eu
Fri Apr 13 05:18:13 CDT 2012


# HG changeset patch
# User Patrick Mezard <patrick at mezard.eu>
# Date 1334304925 -7200
# Node ID 80c8d26b4e2a421b8d77b2f35e78925d50608615
# Parent  a232a1b5ae9b0b3e9469d1567e36a6c42f6563e3
graphlog: implement --hidden

diff --git a/hgext/graphlog.py b/hgext/graphlog.py
--- a/hgext/graphlog.py
+++ b/hgext/graphlog.py
@@ -427,6 +427,10 @@
         # filtered result.
         matched = set(revset.match(repo.ui, expr)(repo, sorted(revs)))
         revs = [r for r in revs if r in matched]
+    if not opts.get('hidden'):
+        # --hidden is still experimental and not worth a dedicated revset
+        # yet. Fortunately, filtering revision number is fast.
+        revs = [r for r in revs if r not in repo.changelog.hiddenrevs]
     return revs, expr, filematcher
 
 def generate(ui, dag, displayer, showparents, edgefn, getrenamed=None,
diff --git a/tests/test-glog.t b/tests/test-glog.t
--- a/tests/test-glog.t
+++ b/tests/test-glog.t
@@ -2026,3 +2026,22 @@
           ('string', 'r:')
           ('string', 'd:relpath'))
         ('string', 'p:.'))))
+  $ cd ..
+
+Test --hidden
+
+  $ 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]' >> .hg/hgrc
+  $ echo "hidden=$HGTMP/testhidden.py" >> .hg/hgrc
+  $ hg id --debug -i -r 0 > .hg/hidden
+  $ testlog
+  []
+  []
+  $ testlog --hidden
+  []
+  []


More information about the Mercurial-devel mailing list