diff -r c3db3bb4699f -r 5bda147c3139 mercurial/revset.py --- a/mercurial/revset.py Wed Jan 04 19:17:44 2017 -0800 +++ b/mercurial/revset.py Sat May 23 11:04:11 2015 +0900 @@ -723,12 +723,15 @@ cs = set() pr = repo.changelog.parentrevs minrev = parentset.min() + nullrev = node.nullrev for r in subset: if r <= minrev: continue - for p in pr(r): - if p in parentset: - cs.add(r) + p1, p2 = pr(r) + if p1 in parentset: + cs.add(r) + if p2 != nullrev and p2 in parentset: + cs.add(r) return baseset(cs) @predicate('children(set)', safe=True)