[PATCH] revset: don't error out if tokens parse as existing symbols
Yuya Nishihara
yuya at tcha.org
Sat May 2 05:51:58 CDT 2015
On Sat, 02 May 2015 00:50:58 -0400, Jordi GutiƩrrez Hermoso wrote:
> # HG changeset patch
> # User Jordi GutiƩrrez Hermoso <jordigh at octave.org>
> # Date 1430352121 14400
> # Wed Apr 29 20:02:01 2015 -0400
> # Node ID c2616419662f8696d0f14bb418d171667aa3da49
> # Parent e9edd53770fb77a9787a3e6592a3bf0a29c1bd80
> revset: don't error out if tokens parse as existing symbols
>
> It makes perfect sense for tokens to parse as existing revset symbols
> (revset functions), and doesn't break anything, since parsing symbols
> as functions works correctly in the presence of parens. For example,
> if "only" is a bookmark, this used to error out,
>
> hg log -r "only(only, @)"
>
> which shouldn't, as the inner "only" is unambiguously not a function.
This patch will help to remove old-style parser at some time.
> diff --git a/mercurial/revset.py b/mercurial/revset.py
> --- a/mercurial/revset.py
> +++ b/mercurial/revset.py
> @@ -335,8 +335,6 @@ def stringset(repo, subset, x):
> return baseset()
>
> def symbolset(repo, subset, x):
> - if x in symbols:
> - raise error.ParseError(_("can't use %s here") % x)
> return stringset(repo, subset, x)
I think symbolset() can be removed. fileset.py has no such function and
both 'string' and 'symbol' are mapped to stringset().
> @@ -291,6 +291,11 @@ quoting needed
> $ log '"date"'
> abort: unknown revision 'date'!
> [255]
> + $ hg book date -r 4
> + $ log 'date'
> + 4
It doesn't test the revset function because old-style revision can be caught
by scmutil.revrange().
Regards,
More information about the Mercurial-devel
mailing list