cmdutil: changed code in getgraphlogrevs not to use getitem
authorLucas Moscovicz <lmoscovicz@fb.com>
Fri, 14 Mar 2014 08:43:52 -0700
changeset 20755 cfd03c069e08
parent 20754 f15ff553b762
child 20756 e7833e63bb42
cmdutil: changed code in getgraphlogrevs not to use getitem __getitem__ is a method that is not implemented lazily on many of the new classes and it can be easily replaced with a structure that takes advantage of the new lazy implementations instead.
mercurial/cmdutil.py
--- a/mercurial/cmdutil.py	Tue Feb 18 11:35:03 2014 -0800
+++ b/mercurial/cmdutil.py	Fri Mar 14 08:43:52 2014 -0700
@@ -1661,7 +1661,12 @@
         revs = matcher(repo, revs)
         revs.sort(reverse=True)
     if limit is not None:
-        revs = revs[:limit]
+        limitedrevs = revset.baseset()
+        for idx, rev in enumerate(revs):
+            if idx >= limit:
+                break
+            limitedrevs.append(rev)
+        revs = limitedrevs
 
     return revs, expr, filematcher