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

Re: [RESEND v2] git-rebase.txt: rewrite docu for fixup/squash (again)

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Oct 23, 2023, 16:01 UTC
Message-ID
<a85c80eb-65ab-4b8c-ba94-de71516da5ef@gmail.com>
In-Reply-To
<20231023130016.1093356-1-oswald.buddenhagen@gmx.de>
Hi Oswald
On 23/10/2023 14:00, Oswald Buddenhagen wrote:
Show 31 quoted lines
> diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
> index e7b39ad244..337df9ef2f 100644
> --- a/Documentation/git-rebase.txt
> +++ b/Documentation/git-rebase.txt
> @@ -890,20 +890,21 @@ command "pick" with the command "reword".
>   To drop a commit, replace the command "pick" with "drop", or just
>   delete the matching line.
>   
> -If you want to fold two or more commits into one, replace the command
> -"pick" for the second and subsequent commits with "squash" or "fixup".
> -If the commits had different authors, the folded commit will be
> -attributed to the author of the first commit.  The suggested commit
> -message for the folded commit is the concatenation of the first
> -commit's message with those identified by "squash" commands, omitting the
> -messages of commits identified by "fixup" commands, unless "fixup -c"
> -is used.  In that case the suggested commit message is only the message
> -of the "fixup -c" commit, and an editor is opened allowing you to edit
> -the message.  The contents (patch) of the "fixup -c" commit are still
> -incorporated into the folded commit. If there is more than one "fixup -c"
> -commit, the message from the final one is used.  You can also use
> -"fixup -C" to get the same behavior as "fixup -c" except without opening
> -an editor.
> +If you want to fold two or more commits into one (that is, to combine
> +their contents/patches), replace the command "pick" for the second and
> +subsequent commits with "squash" or "fixup".
> +The commit message for the folded commit is the concatenation of the
> +message of the first commit with those of commits identified by "squash"
> +commands, omitting those of commits identified by "fixup" commands,
> +unless "fixup -c" is used. In the latter case, the message is obtained
> +only from the "fixup -c" commit (having more than one of these is
> +incorrect).

This change is incorrect - it is perfectly fine to have more than one "fixup -c" command. In that case we use the message of the commit of the final "fixup -c" command. One case where there can be multiple "fixup -c" commands is when a commit has been reworded several times via "git commit --fixup=reword:<commit>" and the user runs "git rebase --autosquash"

Show 6 quoted lines
> +If the resulting commit message is a concatenation of multiple messages,
> +an editor is opened allowing you to edit it. This is also the case for a
> +message obtained via "fixup -c", while using "fixup -C" instead skips
> +the editor; this is analogous to the behavior of `git commit`.
> +The first commit which contributes to the suggested commit message also
> +determines the author, along with the date/timestamp.
In the case of

pick A fixup -C B

don't we keep the authorship from A and just use the commit message from B?
Best Wishes
Phillip
Previous: Oswald BuddenhagenNext: Oswald Buddenhagen
Message 2 of 17 in “[RESEND v2] git-rebase.txt: rewrite docu for fixup/squash (again)”
  1. Oswald BuddenhagenOct 23, 2023
  2. Phillip WoodOct 23, 2023
  3. Oswald BuddenhagenOct 23, 2023
  4. Phillip WoodOct 24, 2023
  5. Junio C HamanoOct 24, 2023
  6. Taylor BlauOct 23, 2023
  7. Oswald BuddenhagenOct 24, 2023
  8. Marc BranchaudOct 24, 2023
  9. Oswald BuddenhagenOct 24, 2023
  10. Marc BranchaudOct 27, 2023
  11. Oswald BuddenhagenOct 27, 2023
  12. git-rebase.txt: rewrite docu for fixup/squash (again)Oswald Buddenhagen, Oct 25, 2023
  13. Marc BranchaudOct 27, 2023
  14. Oswald BuddenhagenOct 27, 2023
  15. Junio C HamanoOct 27, 2023
  16. Marc BranchaudOct 31, 2023
  17. Phillip WoodOct 30, 2023

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.