Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 32799:b36ec65ea583
revset: reject negative number to select first/last n members
Negative 'lim' doesn't make sense here, and it makes things complicated
when using list[:lim].
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 10 Jun 2017 18:35:11 +0900 |
parents | 573b792872c1 |
children | 3e6f9bff7e3f |
comparison
equal
deleted
inserted
replaced
32798:573b792872c1 | 32799:b36ec65ea583 |
---|---|
1160 if 'set' not in args: | 1160 if 'set' not in args: |
1161 # i18n: "limit" is a keyword | 1161 # i18n: "limit" is a keyword |
1162 raise error.ParseError(_("limit requires one to three arguments")) | 1162 raise error.ParseError(_("limit requires one to three arguments")) |
1163 # i18n: "limit" is a keyword | 1163 # i18n: "limit" is a keyword |
1164 lim = getinteger(args.get('n'), _("limit expects a number"), default=1) | 1164 lim = getinteger(args.get('n'), _("limit expects a number"), default=1) |
1165 if lim < 0: | |
1166 raise error.ParseError(_("negative number to select")) | |
1165 # i18n: "limit" is a keyword | 1167 # i18n: "limit" is a keyword |
1166 ofs = getinteger(args.get('offset'), _("limit expects a number"), default=0) | 1168 ofs = getinteger(args.get('offset'), _("limit expects a number"), default=0) |
1167 if ofs < 0: | 1169 if ofs < 0: |
1168 raise error.ParseError(_("negative offset")) | 1170 raise error.ParseError(_("negative offset")) |
1169 os = getset(repo, fullreposet(repo), args['set']) | 1171 os = getset(repo, fullreposet(repo), args['set']) |
1190 l = getargs(x, 1, 2, _("last requires one or two arguments")) | 1192 l = getargs(x, 1, 2, _("last requires one or two arguments")) |
1191 lim = 1 | 1193 lim = 1 |
1192 if len(l) == 2: | 1194 if len(l) == 2: |
1193 # i18n: "last" is a keyword | 1195 # i18n: "last" is a keyword |
1194 lim = getinteger(l[1], _("last expects a number")) | 1196 lim = getinteger(l[1], _("last expects a number")) |
1197 if lim < 0: | |
1198 raise error.ParseError(_("negative number to select")) | |
1195 os = getset(repo, fullreposet(repo), l[0]) | 1199 os = getset(repo, fullreposet(repo), l[0]) |
1196 os.reverse() | 1200 os.reverse() |
1197 result = [] | 1201 result = [] |
1198 it = iter(os) | 1202 it = iter(os) |
1199 for x in xrange(lim): | 1203 for x in xrange(lim): |