git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] merge-options.txt: clarify meaning of various ff-related options

From
Sergey Organov <sorganov@gmail.com>
Date
Aug 28, 2019, 19:15 UTC
Message-ID
<87a7btqeyx.fsf@osv.gnss.ru>
In-Reply-To
<CAN0heSoqy4sCY8NUWKuEkXwe2XxnYAN6Mn2N75hYwfQ_5WGYdQ@mail.gmail.com>
Hi,
Martin Ågren <martin.agren@gmail.com> writes:
[...]
Show 28 quoted lines
>> ++
>> +With --ff-only, resolve the merge as a fast-forward when possible
>> +(when the merged branch contains the current branch in its history).
>> +When not possible, refuse to merge and exit with a non-zero status.
>> ++
>> +With --no-ff, create a merge commit in all cases, even when the merge
>> +could instead resolve as a fast-forward.
>> ++
>> +With --ff, resolve the merge as a fast-forward when possible.  When not
>> +possible, create a merge commit.
>>
>> ---ff-only::
>> -       Refuse to merge and exit with a non-zero status unless the
>> -       current `HEAD` is already up to date or the merge can be
>> -       resolved as a fast-forward.
>
> I was sort of expecting these to be listed in the order "--ff, --no-ff,
> --ff-only", and I see Sergey suggested the same ordering. The way your
> proposed text reads does make sense though... Would it read as well
> turning it over and going through the options in the other order? That's
> the way it is before your patch, so you could argue "but people don't
> grok that!". What your patch does well is to offer an overview before
> describing each option in a bit more detail. Would that work with the
> reversed direction as well (compared to this patch)? Dunno.
>
> I wondered briefly whether it might make sense to float "The default is
> `--no-ff`." to the top, but since it's really "The default ... unless
> so-and-so", it would probably complicate things more than it'd help.

Dunno if it helps, but here is what I came up with somewhere in previous discussions:

--ff::
--no-ff::
--ff-only::
	When the merge resolves as a fast-forward, only update the
	branch pointer (without creating a merge commit).  When a fast
	forward update is not possible, create a merge commit.  This is
	the default behavior, unless merging an annotated (and possibly
	signed) tag that is not stored in its natural place in
	'refs/tags/' hierarchy, in which case --no-ff is assumed.
+
With --no-ff create a merge commit even when the merge could instead
resolve as a fast-forward.
+
With --ff-only resolve the merge as a fast-forward (never create a merge
commit). When fast-forward is not possible, refuse to merge and exit
with non-zero status.
-- 
Sergey
Previous: Martin ÅgrenNext: Martin Ågren
Message 5 of 16 in “merge-options.txt: clarify meaning of various ff-related options”
  1. merge-options.txt: clarify meaning of various ff-related optionsElijah Newren, Aug 28, 2019
  2. Sergey OrganovAug 28, 2019
  3. merge-options.txt: clarify meaning of various ff-related optionsElijah Newren, Aug 28, 2019
  4. Martin ÅgrenAug 28, 2019
  5. Sergey OrganovAug 28, 2019
  6. Martin ÅgrenAug 28, 2019
  7. Sergey OrganovAug 29, 2019
  8. Elijah NewrenAug 28, 2019
  9. Sergey OrganovAug 29, 2019
  10. merge-options.txt: clarify meaning of various ff-related optionsElijah Newren, Aug 28, 2019
  11. Junio C HamanoAug 30, 2019
  12. Eric SunshineAug 30, 2019
  13. merge-options.txt: clarify meaning of various ff-related optionsElijah Newren, Aug 31, 2019
  14. Junio C HamanoAug 30, 2019
  15. Elijah NewrenAug 30, 2019
  16. Junio C HamanoAug 30, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.