# HG changeset patch # User Lucas Moscovicz # Date 2014-03-12 00:03:43 # Node ID e9a64b3f2925ee8048256e8af768864012fcd1cb # Parent fb9852c46a42b7e4d7639204a99c2aa0c7d65c54 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. diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2409,6 +2409,19 @@ class _addset(object): 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: