# HG changeset patch # User Patrick Mezard # Date 2012-04-14 08:30:38 # Node ID c85098cdd7dfc6eae660815b92862640b2020179 # Parent 6883c2363f44ea7b0dcb83f3c507c71b0f1b4a34 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 @@ def getlogrevs(repo, pats, opts): # 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 @@ Test subdir ('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 + [] + []