Mercurial > hg
changeset 20732:728438da3090
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.
author | Lucas Moscovicz <lmoscovicz@fb.com> |
---|---|
date | Fri, 14 Mar 2014 10:23:54 -0700 |
parents | 88aae5382519 |
children | adf4ec7e6f60 |
files | mercurial/revset.py |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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