Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] add receive.denyNonFastforwards config variable

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:41

Johannes Schindelin [off-list ref] writes:
On Wed, 20 Sep 2006, Junio C Hamano wrote:
quoted
Johannes Schindelin [off-list ref] writes:
quoted
	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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help