Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 22804:5385314e0b14
revset-limit: remove user of baseset.append
A `baseset` has multiple cached results and will get even more in the future.
Making it an object "populated once" like the other smartsets makes it both safer
and simpler. The append method will be removed at some point.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 06 Oct 2014 10:57:01 -0700 |
parents | 1fcd361efaf4 |
children | e74245b79901 |
comparison
equal
deleted
inserted
replaced
22803:31a591c3fecc | 22804:5385314e0b14 |
---|---|
1013 except (TypeError, ValueError): | 1013 except (TypeError, ValueError): |
1014 # i18n: "limit" is a keyword | 1014 # i18n: "limit" is a keyword |
1015 raise error.ParseError(_("limit expects a number")) | 1015 raise error.ParseError(_("limit expects a number")) |
1016 ss = subset.set() | 1016 ss = subset.set() |
1017 os = getset(repo, spanset(repo), l[0]) | 1017 os = getset(repo, spanset(repo), l[0]) |
1018 bs = baseset() | 1018 result = [] |
1019 it = iter(os) | 1019 it = iter(os) |
1020 for x in xrange(lim): | 1020 for x in xrange(lim): |
1021 try: | 1021 try: |
1022 y = it.next() | 1022 y = it.next() |
1023 if y in ss: | 1023 if y in ss: |
1024 bs.append(y) | 1024 result.append(y) |
1025 except (StopIteration): | 1025 except (StopIteration): |
1026 break | 1026 break |
1027 return bs | 1027 return baseset(result) |
1028 | 1028 |
1029 def last(repo, subset, x): | 1029 def last(repo, subset, x): |
1030 """``last(set, [n])`` | 1030 """``last(set, [n])`` |
1031 Last n members of set, defaulting to 1. | 1031 Last n members of set, defaulting to 1. |
1032 """ | 1032 """ |