Comments
Patch
@@ -840,16 +840,19 @@ def extra(repo, subset, x):
a regular expression. To match a value that actually starts with `re:`,
use the prefix `literal:`.
"""
-
+ args = getkwargs(x, 'extra', 'label value')
+ if 'label' not in args:
+ # i18n: "extra" is a keyword
+ raise error.ParseError(_('extra takes at least 1 argument'))
# i18n: "extra" is a keyword
- l = getargs(x, 1, 2, _('extra takes at least 1 and at most 2 arguments'))
- # i18n: "extra" is a keyword
- label = getstring(l[0], _('first argument to extra must be a string'))
+ label = getstring(args['label'], _('first argument to extra must be '
+ 'a string'))
value = None
- if len(l) > 1:
+ if 'value' in args:
# i18n: "extra" is a keyword
- value = getstring(l[1], _('second argument to extra must be a string'))
+ value = getstring(args['value'], _('second argument to extra must be '
+ 'a string'))
kind, value, matcher = _stringmatcher(value)
def _matchvalue(r):
@@ -324,6 +324,25 @@ quoting needed
keyword arguments
+ $ log 'extra(branch, value=a)'
+ 0
+
+ $ log 'extra(branch, a, b)'
+ hg: parse error: extra takes at most 2 arguments
+ [255]
+ $ log 'extra(a, label=b)'
+ hg: parse error: extra got multiple values for keyword argument 'label'
+ [255]
+ $ log 'extra(label=branch, default)'
+ hg: parse error: extra got an invalid argument
+ [255]
+ $ log 'extra(branch, foo+bar=baz)'
+ hg: parse error: extra got an invalid argument
+ [255]
+ $ log 'extra(unknown=branch)'
+ hg: parse error: extra got an unexpected keyword argument 'unknown'
+ [255]
+
$ try 'foo=bar|baz'
(keyvalue
('symbol', 'foo')