Jeff King [off-list ref] writes:
I wonder if you can
define the weight as a recursive function of the parents.
I do not think we can. A merge Z between X (that has N commits
behind it) and Y (that has M commits behind it) has at most N+M+1
commits behind it (counting itself), but we cannot tell how many
among these N and M are shared.
That would double-count "A" and "B" in this example. But maybe there is
a clever way to define it that avoids that.
We've dealt with this issue long time ago when we optimized the
bisection count, which involves exactly the same issue.