revset: added sort method in addset
We need this method to duck-type generatorset since this class is not going to
be used outside revset.py and we don't need to duck-type baseset.
This sort method will only do something when the addset is not already sorted
or is not sorted in the way we want it to be.
--- a/mercurial/revset.py Thu Mar 13 18:57:30 2014 -0700
+++ b/mercurial/revset.py Tue Mar 11 17:03:43 2014 -0700
@@ -2409,6 +2409,19 @@
def set(self):
return self
+ def sort(self, reverse=False):
+ """Sort the added set
+
+ For this we use the cached list with all the generated values and if we
+ know they are ascending or descending we can sort them in a smart way.
+ """
+ if self._ascending is None:
+ self._list.sort(reverse=reverse)
+ self._ascending = not reverse
+ else:
+ if bool(self._ascending) == bool(reverse):
+ self.reverse()
+
def reverse(self):
self._list.reverse()
if self._ascending is not None: