Re: [PATCH] rebase -i: allow a comment after a "break" command
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 13, 2023, 20:17 UTC
- Message-ID
- <xmqqwn5q1960.fsf@gitster.g>
- In-Reply-To
- <CABPp-BFf4pbRAy+Oaghx5d8DZgBjY_OUM-rJZna+JyNwx9WB-Q@mail.gmail.com>
Elijah Newren <newren@gmail.com> writes:
Show 14 quoted lines
> Of course, the same applies to edit/squash/fixup/reword, though if I
> could go back in time...(warning, long tangent coming)...I would make
> it so those four directives did not accept any commit ID argument.
> Only "pick" and "reset" would accept a commit ID. Instead, today's
> "edit X" would be two commands ("pick X" followed by either "break" or
> "edit"), "fixup X" would be "pick X" + "fixup", and "reword X" would
> be "pick X" + "reword". That'd help users understand rebase state
> much better (it's so easy for users to get confused by whether they
> should be using `git commit --amend` vs. `git rebase --continue` and I
> think this is partially to blame, though there's other changes we
> could make to help with that dichotomy as well). The separate
> directives would also make it much easier to figure out how to both
> fixup and edit a single commit in the same rebase (pick the commit,
> then add a fixup directive, then an edit directive). Intriguing, and I feel sad that it probably is too late for all of the above X-<.
> In fact, "squash > X" could just be discarded as superfluous, since it's just "pick X" + > "fixup" + "reword" (or we could keep squash as an abbreviation for > both "fixup" + "reword").
IIUC, your "fixup" is
git reset --soft HEAD^ git commit --amend --no-edit
i.e. discard the log message from "fixup" and use only its tree, and your "reword" is
git commit --amend --edit
so "pick X" + "fixup" + "reword" would not be quite usable as a replacement of our "squash X" (or your "pick X" + "squash"), I am afraid. You'd want the log message from "X" as well as "X^" to edit the replacement of X^.