[PATCH] revset: don't error out if tokens parse as existing symbols
Jordi Gutiérrez Hermoso
jordigh at octave.org
Sat May 2 04:50:58 UTC 2015
# 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.
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)
def rangeset(repo, subset, x, y):
diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -280,7 +280,7 @@ quoting needed
hg: parse error: date requires a string
[255]
$ log 'date'
- hg: parse error: can't use date here
+ abort: unknown revision 'date'!
[255]
$ log 'date('
hg: parse error at 5: not a prefix: end
@@ -291,6 +291,11 @@ quoting needed
$ log '"date"'
abort: unknown revision 'date'!
[255]
+ $ hg book date -r 4
+ $ log 'date'
+ 4
+ $ log '"date"'
+ 4
$ log 'date(2005) and 1::'
4
More information about the Mercurial-devel
mailing list