Mercurial > hg
changeset 26637:179764469754
revset: port limit() to support keyword arguments
The next patch will introduce the third 'offset' argument. This allows us
to specify 'offset' without 'n' argument.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 12 Oct 2015 17:19:22 +0900 |
parents | ff6baf32b3ba |
children | 7afaf2566e25 |
files | mercurial/revset.py |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Mon Oct 12 17:14:47 2015 +0900 +++ b/mercurial/revset.py Mon Oct 12 17:19:22 2015 +0900 @@ -1287,17 +1287,19 @@ """``limit(set, [n])`` First n members of set, defaulting to 1. """ - # i18n: "limit" is a keyword - l = getargs(x, 1, 2, _("limit requires one or two arguments")) + args = getargsdict(x, 'limit', 'set n') + if 'set' not in args: + # i18n: "limit" is a keyword + raise error.ParseError(_("limit requires one or two arguments")) try: lim = 1 - if len(l) == 2: + if 'n' in args: # i18n: "limit" is a keyword - lim = int(getstring(l[1], _("limit requires a number"))) + lim = int(getstring(args['n'], _("limit requires a number"))) except (TypeError, ValueError): # i18n: "limit" is a keyword raise error.ParseError(_("limit expects a number")) - os = getset(repo, fullreposet(repo), l[0]) + os = getset(repo, fullreposet(repo), args['set']) result = [] it = iter(os) for x in xrange(lim):