On 05/25/2018 12:08 AM, Jakub Narebski wrote: > Derrick Stolee <stolee@xxxxxxxxx> writes: >> On 5/22/2018 1:39 AM, Michael Haggerty wrote: >>> On 05/21/2018 08:10 PM, Derrick Stolee wrote: >>>> [...] >>> This may be beyond the scope of what you are working on, but there are >>> significant advantages to selecting a "best" merge base from among the >>> candidates. Long ago [1] I proposed that the "best" merge base is the >>> merge base candidate that minimizes the number of non-merge commits that >>> are in >>> >>> git rev-list $candidate..$branch >>> >>> that are already in master: >>> >>> git rev-list $master >>> >>> (assuming merging branch into master), which is equivalent to choosing >>> the merge base that minimizes >>> >>> git rev-list --count $candidate..$branch > > Is the above correct... > >>> In fact, this criterion is symmetric if you exchange branch ↔ master, >>> which is a nice property, and indeed generalizes pretty simply to >>> computing the merge base of more than two commits. > > ...as it doesn't seem to have the described symmetry. The first email that I referenced [1] demonstrates this in the section "Symmetry; generalization to more than two branches". The same thing is demonstrated in a simpler way using set notation in a later email in that thread [2]. Michael [1] https://public-inbox.org/git/539A25BF.4060501@xxxxxxxxxxxx/ [2] https://public-inbox.org/git/53A06264.9080205@xxxxxxxxxxxx/