While traversing the obsolescence graph to find the successors sets
of csets:
In its 4th case (read comments of obsutil.successorssets to see all 4 cases) where we know successors sets of all direct successors of CURRENT, we were just missing a condition to filter out the case when a cset is pruned. And without this condition (that this patch added) it was making a whole successor set to [] just because of one pruned marker.
For e.g:if following is the successors set of a cset A:
A -> [a, b, c] if we prune c, we expect A's successors set to be [a, b] but you would get: A -> []
So this patch make sure that we calculate the right successorsset of csets
considering the pruned cset (in split case).
The new output looks somewhat more correct, but not quite. This changeset definitely wasn't just pruned, but it also wasn't rewritten either: it was split, and you can see correct hg fatelog output in the block below this one. The difference between them is wdir parent is different and the fatelog below has --hidden flag.
So is it expected that this patch doesn't fully fix this particular issue?