Comments
Patch
@@ -1071,7 +1071,7 @@ def followlines(repo, subset, x):
fromline, toline = util.processlinerange(
*getintrange(args['lines'][0],
# i18n: "followlines" is a keyword
- _("followlines expects a line range"),
+ _("followlines expects a line number or a range"),
_("line range bounds must be integers")))
fctx = repo[rev].filectx(fname)
@@ -246,9 +246,13 @@ def getintrange(x, err1, err2, deffirst=
If any of the sides omitted, and if no default provided, ParseError will
be raised.
"""
+ if x and (x[0] == 'string' or x[0] == 'symbol'):
+ n = getinteger(x, err1)
+ return n, n
a, b = getrange(x, err1)
return getinteger(a, err2, deffirst), getinteger(b, err2, deflast)
+
def getargs(x, min, max, err):
l = getlist(x)
if len(l) < min or (max >= 0 and len(l) > max):
@@ -809,6 +809,15 @@ track of possible further descendants in
|\
~ ~
+An integer as a line range, which is parsed as '1:1'
+
+ $ hg log -r 'followlines(baz, 1)'
+ changeset: 22:2174d0bf352a
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added two lines with 0
+
+
check error cases
$ hg up 24 --quiet
$ hg log -r 'followlines()'
@@ -817,8 +826,8 @@ check error cases
$ hg log -r 'followlines(baz)'
hg: parse error: followlines requires a line range
[255]
- $ hg log -r 'followlines(baz, 1)'
- hg: parse error: followlines expects a line range
+ $ hg log -r 'followlines(baz, x)'
+ hg: parse error: followlines expects a line number or a range
[255]
$ hg log -r 'followlines(baz, 1:2, startrev=desc("b"))'
hg: parse error: followlines expects exactly one revision