mercurial/revset.py
changeset 25647 46a96dd4d976
parent 25634 1ddefcfcd3e6
child 25648 9b9877d2b229
--- a/mercurial/revset.py	Sat Jun 20 16:22:10 2015 -0700
+++ b/mercurial/revset.py	Mon Jun 22 10:19:12 2015 -0700
@@ -1755,9 +1755,13 @@
     Changesets in set with no parent changeset in set.
     """
     s = getset(repo, fullreposet(repo), x)
-    subset = subset & s# baseset([r for r in s if r in subset])
-    cs = _children(repo, subset, s)
-    return subset - cs
+    parents = repo.changelog.parentrevs
+    def filter(r):
+        for p in parents(r):
+            if 0 <= p and p in s:
+                return False
+        return True
+    return subset & s.filter(filter)
 
 def sort(repo, subset, x):
     """``sort(set[, [-]key...])``