diff --git a/mercurial/revset.py b/mercurial/revset.py index f3c8db3d6d66550b050e02b592c84e3705b9f899_bWVyY3VyaWFsL3JldnNldC5weQ==..2d52f37937b0f83077a4ffa8f381132329924c10_bWVyY3VyaWFsL3JldnNldC5weQ== 100644 --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2151,7 +2151,7 @@ the subset and contains a function which tests for membership in the revset """ - def __init__(self, subset, condition): + def __init__(self, subset, condition=lambda x: True): self._subset = subset self._condition = condition self._cache = {} @@ -2175,8 +2175,14 @@ return lazyset(self, lambda r: r not in x) def __add__(self, x): - l = baseset([r for r in self]) - return l + baseset(x) + def iterates(): + for r in self: + yield r + for r in x: + if r not in self: + yield r + + return lazyset(generatorset(iterates())) def __nonzero__(self): for r in self: