--- a/mercurial/revset.py Mon Feb 10 12:26:45 2014 -0800
+++ b/mercurial/revset.py Tue Feb 11 14:03:43 2014 -0800
@@ -540,18 +540,19 @@
return subset.filter(matches)
def _children(repo, narrow, parentset):
- cs = set()
if not parentset:
- return baseset(cs)
+ return baseset([])
pr = repo.changelog.parentrevs
minrev = min(parentset)
- for r in narrow:
- if r <= minrev:
- continue
- for p in pr(r):
+
+ def matches(x):
+ if x <= minrev:
+ return False
+ for p in pr(x):
if p in parentset:
- cs.add(r)
- return baseset(cs)
+ return True
+
+ return narrow.filter(matches)
def children(repo, subset, x):
"""``children(set)``