Subject: Re: [PATCH] Expand explanation of the use of + in git push refspecs.

From: Marc Branchaud <[email-masked]>
Date: Tue, 24 Feb 2009 11:54:45 -0500

Junio C Hamano wrote:
> 
> I am of two minds with this.  The understanding of the concept of
> fast-forwardness is necessary not just to understand push but also to
> understand merge, and if glossary is missing the definition, we should add
> one there.

It's precisely because fast-forwarding and merging are so closely 
related (at least in my mind) that I felt the need to clarify push's 
documentation.  My intuition about "non-fast-forward" is in the context 
of pulling and merging.  So the current man page sounds to me like 
push's non-fast-forward is a merge, which it clearly isn't.

> What exactly happens when the <dst> is updated is the same
> regardless of ff or non-ff in that the old 40 hexdecimal object name is
> gone and replaced with the new one, and it does not feel right to say "if
> ff, we update if non-ff you can force to overwrite."  Either way, you
> overwrite and there is no trace of the old one.  So we would want to say
> something like:
> 
>     The name of the object referenced by <src> is used to update the ref
>     <dst> on the remote side, but by default this is only allowed if the
>     update is fast-forward.  By having the optional leading plus, you can
>     tell git to update the ref <dst> even when the update is not a
>     fast-forward.

My second attempt used your wording (mostly), and also emphasized the 
not-merging aspect.

> Please don't wrap a full paragraph, only to change a few sentences.
> AsciiDoc wraps lines for output just fine; it took me a few extra minutes
> to make sure there is no other changes.

Whoops, sorry!  Will avoid reflowing in the future.

		M.