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. -- 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