# HG changeset patch # User Lucas Moscovicz # Date 1394581935 25200 # Node ID c152e538b85b099ce20b51104b8b7dd3666aad7c # Parent b95490cf8abd24e7c7a157c5d066b6c6ee8d7d62 revset: added ascending attribute to addset class In case both collections are in an ascending/descending order then we will be able to iterate them lazily while keeping the order. diff -r b95490cf8abd -r c152e538b85b mercurial/revset.py --- a/mercurial/revset.py Mon Mar 10 10:49:04 2014 -0700 +++ b/mercurial/revset.py Tue Mar 11 16:52:15 2014 -0700 @@ -2312,13 +2312,18 @@ Wrapper structure for lazily adding two structures without losing much performance on the __contains__ method + If the ascending attribute is set, that means the two structures are + ordered in either an ascending or descending way. Therefore, we can add + them mantaining the order by iterating over both at the same time + This class does not duck-type baseset and it's only supposed to be used internally """ - def __init__(self, revs1, revs2): + def __init__(self, revs1, revs2, ascending=None): self._r1 = revs1 self._r2 = revs2 self._iter = None + self._ascending = ascending def _iterator(self): if not self._iter: