Hi, On Wed, 20 Sep 2006, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > >> X - a - b - c - Y > >> / / > >> o - d - e - f > > > > In your example, git-merge-base X Y returns X. In fact, I could only get > > one merge base out of git-merge-base --all. I tried looking in the tests > > to find a case that produced multiple merge bases, but I was unable to > > find one. Is there an example floating around somewhere? > > There are quite a few in git.git itself. In the recent history, > this counts 42, the answer to everything. > > #!/bin/sh > LF=' > ' > git rev-list --parents master..next | > while read it p1 p2 octo > do > case "$p2" in '') continue ;; esac > mb=`git merge-base --all "$p1" "$p2"` At this point you should also check if $p2 is in $mb. > case "$mb" in ?*"$LF"?*) echo "$p1 $p2" : $mb ;; > esac > done The question was, if there is a fast-forward with more than one merge base, i.e. if the loop we jump^H^H^H^Hdo over bases is necessary. And no, I am not aware of any such example. Probably because X would mark all ancestors (_including_ all other possible merge bases) as uninteresting. Therefore, I am convinced that there is no fast-forward returning more than one merge base. It is technically impossible. And thus, our loop is not necessary, but what the heck. Ciao, Dscho - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html