# HG changeset patch # User Matt Harbison # Date 1405727216 14400 # Node ID 7142e04b438eab39685e63085503b8af0e42b31e # Parent 5375ba75df4040e05a106cd1f8f3db30430133f2 revset: avoid a ValueError when 'only()' is given an empty set This previously died in _revdescendants() taking the min() of the first set to only(), when it was empty. An empty second set already worked. Likewise, descendants() already handled an empty set. diff -r 5375ba75df40 -r 7142e04b438e mercurial/revset.py --- a/mercurial/revset.py Tue Jul 15 23:34:13 2014 +0900 +++ b/mercurial/revset.py Fri Jul 18 19:46:56 2014 -0400 @@ -399,6 +399,9 @@ args = getargs(x, 1, 2, _('only takes one or two arguments')) include = getset(repo, spanset(repo), args[0]).set() if len(args) == 1: + if len(include) == 0: + return baseset([]) + descendants = set(_revdescendants(repo, include, False)) exclude = [rev for rev in cl.headrevs() if not rev in descendants and not rev in include] diff -r 5375ba75df40 -r 7142e04b438e tests/test-revset.t --- a/tests/test-revset.t Tue Jul 15 23:34:13 2014 +0900 +++ b/tests/test-revset.t Fri Jul 18 19:46:56 2014 -0400 @@ -427,6 +427,16 @@ 7 8 9 + +Test empty set input + $ log 'only(p2())' + $ log 'only(p1(), p2())' + 0 + 1 + 2 + 4 + 8 + 9 $ log 'outgoing()' 8 9