diff -r c1febc167d87 -r fe220013e4db mercurial/revset.py --- a/mercurial/revset.py Thu Feb 20 16:12:27 2014 -0600 +++ b/mercurial/revset.py Fri Feb 21 13:16:17 2014 -0800 @@ -2243,9 +2243,13 @@ self._hiddenrevs) def __and__(self, x): + if isinstance(x, baseset): + x = x.set() return lazyset(self, lambda r: r in x) def __sub__(self, x): + if isinstance(x, baseset): + x = x.set() return lazyset(self, lambda r: r not in x) def __add__(self, x):