# HG changeset patch # User Yuya Nishihara # Date 1420868990 -32400 # Node ID 2de9ee0164255f8d45af85dbab00fe4f6e28298d # Parent 77ef059b33174e223fff49f062f6a48ed25f97e3 revset: have all() filter out null revision I'm not sure if "all()" should filter out "null", but "all()" is stated as 'the same as "0:tip"' (except that it doesn't reorder the subset, I think.) This patch is intended to avoid exposing a fullreposet to graphmod.dagwalker(), which would result in strange drawing in future version: | o changeset: 0:f8035bb17114 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: add a caused by: parents = sorted(set([p.rev() for p in ctx.parents() if p.rev() in revs])) We cannot add "and p.rev() != nullrev" here because revs may actually include "null" revision. diff -r 77ef059b3317 -r 2de9ee016425 mercurial/revset.py --- a/mercurial/revset.py Sat Jan 10 16:41:36 2015 +0900 +++ b/mercurial/revset.py Sat Jan 10 14:49:50 2015 +0900 @@ -994,7 +994,7 @@ """ # i18n: "all" is a keyword getargs(x, 0, 0, _("all takes no arguments")) - return subset + return subset & spanset(repo) # drop "null" if any def grep(repo, subset, x): """``grep(regex)`` diff -r 77ef059b3317 -r 2de9ee016425 tests/test-glog.t --- a/tests/test-glog.t Sat Jan 10 16:41:36 2015 +0900 +++ b/tests/test-glog.t Sat Jan 10 14:49:50 2015 +0900 @@ -2365,4 +2365,14 @@ date: Thu Jan 01 00:00:00 1970 +0000 +should not draw line down to null due to the magic of fullreposet + + $ hg log -G -r 'all()' | tail -6 + | + o changeset: 0:f8035bb17114 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add a + + $ cd .. diff -r 77ef059b3317 -r 2de9ee016425 tests/test-revset.t --- a/tests/test-revset.t Sat Jan 10 16:41:36 2015 +0900 +++ b/tests/test-revset.t Sat Jan 10 14:49:50 2015 +0900 @@ -480,6 +480,9 @@ Test null revision $ log 'ancestors(null)' -1 + $ log 'tip:null and all()' | tail -2 + 1 + 0 $ log 'outgoing()' 8