Thomas Rast [off-list ref] writes:
Well, yeah, you snipped this part from my original post :-)
} Even if this turns out to be flawed, we should also identify uses of
} in_merge_bases() where the real question was is_descendant_of() [I
} somewhat suspect that's all of them], and then replace is_descendant_of
} with a much cheaper lookup. This can be as simple as propagating a mark
} from the candidate until it either goes beyond all possible ancestors,
} or hits one of them.
Yeah, I agree with the above, and the "cheaper lookup" would
probably be merge-bases-many() without postprocess.