# HG changeset patch # User Lucas Moscovicz # Date 2014-03-11 23:52:15 # 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 --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2312,13 +2312,18 @@ class _addset(object): 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: