mercurial/revset.py
branchstable
changeset 21939 f486001f9d6f
parent 21925 7142e04b438e
child 22105 3efe3c2609e0
--- a/mercurial/revset.py	Wed Jul 16 13:07:39 2014 -0500
+++ b/mercurial/revset.py	Thu Jul 24 12:12:12 2014 -0700
@@ -2232,6 +2232,13 @@
         """Returns a new object with the substraction of the two collections.
 
         This is part of the mandatory API for smartset."""
+        # If we are operating on 2 baseset, do the computation now since all
+        # data is available. The alternative is to involve a lazyset, which
+        # may be slow.
+        if isinstance(other, baseset):
+            other = other.set()
+            return baseset([x for x in self if x not in other])
+
         return self.filter(lambda x: x not in other)
 
     def __and__(self, other):