# HG changeset patch # User Lucas Moscovicz # Date 1394817834 25200 # Node ID 728438da3090676001565a92156937cf909e00da # Parent 88aae5382519840620f5a2220589a1956b7cae65 revset: added __add__ method to _addset This method is intended to duck-type baseset, so we will still have _addset as a private class but we will be able to return it without wrapping it into an orderedlazyset or a lazyset. diff -r 88aae5382519 -r 728438da3090 mercurial/revset.py --- a/mercurial/revset.py Fri Mar 14 10:22:51 2014 -0700 +++ b/mercurial/revset.py Fri Mar 14 10:23:54 2014 -0700 @@ -2425,6 +2425,17 @@ return orderedlazyset(self, filterfunc, ascending=self._ascending) return lazyset(self, filterfunc) + def __add__(self, other): + """When both collections are ascending or descending, preserve the order + """ + kwargs = {} + if self._ascending is not None: + if self.isascending() and other.isascending(): + kwargs['ascending'] = True + if self.isdescending() and other.isdescending(): + kwargs['ascending'] = False + return _addset(self, other, **kwargs) + def _iterator(self): """Iterate over both collections without repeating elements