From: Junio C Hamano Date: Thu, 21 Sep 2006 05:08:28 GMT Subject: Re: [PATCH] add receive.denyNonFastforwards config variable Message-ID: <7v8xkderhv.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Johannes Schindelin writes: > On Wed, 20 Sep 2006, Junio C Hamano wrote: > >> Johannes Schindelin writes: >> >> > No longer barfs on new refs, and tries all merge bases (even if I >> > cannot come up with any scenario where there is more than one merge >> > base in the case of a fast forward). >> >> Hmm. If that is the case (and I think it is although I haven't >> come up with a proof), > > From git-fetch.sh: > > # Require fast-forward. > mb=$(git-merge-base "$local" "$2") && >... > So we indeed assumed that git-merge-base returns the old commit in the > case of a fast-forward (git-merge-base returns just the first item of the > result of get_merge_bases()). I think this was leftover from the days we naïvely assumed that multiple bases does not matter, and probably needs updating. > Note that I have no proof that this assumption is true. It might be wrong > in this case: > > X - a - b - c - Y > / / > o - d - e - f > > where X is the old commit, and Y is the new commit. But I am too tired to > test it right now.