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 """