diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2425,6 +2425,17 @@ class _addset(object): 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