revset-limit: remove user of baseset.append
authorPierre-Yves David <pierre-yves.david@fb.com>
Mon, 06 Oct 2014 10:57:01 -0700
changeset 22804 5385314e0b14
parent 22803 31a591c3fecc
child 22805 e74245b79901
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.
mercurial/revset.py
--- a/mercurial/revset.py	Tue Oct 07 00:12:56 2014 -0700
+++ b/mercurial/revset.py	Mon Oct 06 10:57:01 2014 -0700
@@ -1015,16 +1015,16 @@
         raise error.ParseError(_("limit expects a number"))
     ss = subset.set()
     os = getset(repo, spanset(repo), l[0])
-    bs = baseset()
+    result = []
     it = iter(os)
     for x in xrange(lim):
         try:
             y = it.next()
             if y in ss:
-                bs.append(y)
+                result.append(y)
         except (StopIteration):
             break
-    return bs
+    return baseset(result)
 
 def last(repo, subset, x):
     """``last(set, [n])``