mercurial/revset.py
changeset 32799 b36ec65ea583
parent 32798 573b792872c1
child 32800 3e6f9bff7e3f
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):