Re: [PATCH 3/6] commit: add a reword suboption to --fixup
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 17, 2021, 19:56 UTC
- Message-ID
- <xmqqwnv6jwmz.fsf@gitster.g>
- In-Reply-To
- <20210217073725.16656-3-charvi077@gmail.com>
Charvi Mendiratta <charvi077@gmail.com> writes:
Show 10 quoted lines
> `git commit --fixup=reword:<commit>` creates an empty "amend!" commit > that will reword <commit> without changing its contents when it is > rebased with --autosquash. > > Apart from ignoring staged changes it works similarly to > `--fixup=amend:<commit>`. > > Example usage: > $ git commit --fixup=reword:HEAD~3 > $ git commit --fixup=reword:HEAD~3 -m "new commit message"
The same comment applies to the above as an earlier step.
Show 14 quoted lines
> +static void check_fixup_reword_options(void) {
> + if (whence != FROM_COMMIT) {
> + if (whence == FROM_MERGE)
> + die(_("You are in the middle of a merge -- cannot reword."));
> + else if (is_from_cherry_pick(whence))
> + die(_("You are in the middle of a cherry-pick -- cannot reword."));
> + }
> + if (all)
> + die(_("cannot combine reword option of --fixup with --all"));
> + if (also)
> + die(_("cannot combine reword option of --fixup with --include"));
> + if (only)
> + die(_("cannot combine reword option of --fixup with --only"));
> +}Not just these options, wouldn't it be an error to ask to commit anything but an empty commit? E.g. shouldn't this sequence
edit builtin/commit.c git commit --fixup=reword:HEAD~3 -- builtin/commit.c
trigger an error, as we will *not* be taking any change made to the working tree file?
Or is that implicitly covered by some other code?
In any case, we'd need a test for that (this is just a mental note for myself---I haven't finished reading the series to the end, so you may have one already).
Thanks.