comparison mercurial/revset.py @ 31667:080734cd2440

revset: factor out linerange processing into a utility function Similar processing will be done in hgweb.webutil in forthcoming changeset.
author Denis Laxalde <denis.laxalde@logilab.fr>
date Fri, 24 Feb 2017 18:39:08 +0100
parents 0e07855e6054
children 35b8bb1ef02b
comparison
equal deleted inserted replaced
31666:f36dc643ffdc 31667:080734cd2440
943 fname = files[0] 943 fname = files[0]
944 944
945 lr = getrange(args['lines'][0], _("followlines expects a line range")) 945 lr = getrange(args['lines'][0], _("followlines expects a line range"))
946 fromline, toline = [getinteger(a, _("line range bounds must be integers")) 946 fromline, toline = [getinteger(a, _("line range bounds must be integers"))
947 for a in lr] 947 for a in lr]
948 if toline - fromline < 0: 948 fromline, toline = util.processlinerange(fromline, toline)
949 raise error.ParseError(_("line range must be positive"))
950 if fromline < 1:
951 raise error.ParseError(_("fromline must be strictly positive"))
952 fromline -= 1
953 949
954 fctx = repo[rev].filectx(fname) 950 fctx = repo[rev].filectx(fname)
955 revs = (c.rev() for c, _linerange 951 revs = (c.rev() for c, _linerange
956 in context.blockancestors(fctx, fromline, toline)) 952 in context.blockancestors(fctx, fromline, toline))
957 return subset & generatorset(revs, iterasc=False) 953 return subset & generatorset(revs, iterasc=False)