Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 22805:e74245b79901
revset-last: 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 | Wed, 08 Oct 2014 00:55:09 -0700 |
parents | 5385314e0b14 |
children | 228b0aafb1ce |
comparison
equal
deleted
inserted
replaced
22804:5385314e0b14 | 22805:e74245b79901 |
---|---|
1041 # i18n: "last" is a keyword | 1041 # i18n: "last" is a keyword |
1042 raise error.ParseError(_("last expects a number")) | 1042 raise error.ParseError(_("last expects a number")) |
1043 ss = subset.set() | 1043 ss = subset.set() |
1044 os = getset(repo, spanset(repo), l[0]) | 1044 os = getset(repo, spanset(repo), l[0]) |
1045 os.reverse() | 1045 os.reverse() |
1046 bs = baseset() | 1046 result = [] |
1047 it = iter(os) | 1047 it = iter(os) |
1048 for x in xrange(lim): | 1048 for x in xrange(lim): |
1049 try: | 1049 try: |
1050 y = it.next() | 1050 y = it.next() |
1051 if y in ss: | 1051 if y in ss: |
1052 bs.append(y) | 1052 result.append(y) |
1053 except (StopIteration): | 1053 except (StopIteration): |
1054 break | 1054 break |
1055 return bs | 1055 return baseset(result) |
1056 | 1056 |
1057 def maxrev(repo, subset, x): | 1057 def maxrev(repo, subset, x): |
1058 """``max(set)`` | 1058 """``max(set)`` |
1059 Changeset with highest revision number in set. | 1059 Changeset with highest revision number in set. |
1060 """ | 1060 """ |