mercurial/revset.py
changeset 20703 e07b1fd30805
parent 20695 d99fcf4483f8
child 20705 9cc2249a9461
--- a/mercurial/revset.py	Thu Sep 19 15:38:42 2013 -0400
+++ b/mercurial/revset.py	Mon Feb 24 16:36:17 2014 -0800
@@ -2348,6 +2348,7 @@
         self._cache = {}
         self._genlist = baseset([])
         self._iterated = False
+        self._finished = False
 
     def __contains__(self, x):
         if x in self._cache:
@@ -2357,6 +2358,7 @@
             if l == x:
                 return True
 
+        self._finished = True
         self._cache[x] = False
         return False
 
@@ -2372,9 +2374,18 @@
             self._genlist.append(item)
             yield item
 
+        self._finished = True
+
     def set(self):
         return self
 
+    def sort(self, reverse=False):
+        # Basic implementation to be changed in future patches
+        if not self._finished:
+            for i in self:
+                continue
+        self._genlist.sort(reverse=reverse)
+
 class ascgeneratorset(generatorset):
     """ Same structure as generatorset but stops iterating after it goes past
     the value when asked for membership and the element is not contained