commit: reword the empty-commit rebase amend error

When a rebase applies a commit that becomes empty, it stops and asks the
user to decide whether to keep it or drop it.  HEAD still points at the
previously-applied commit at that point, so amending is refused, with:

    You are in the middle of a rebase -- cannot amend.

That message would suggest that amending is not allowed during an 'edit'
or 'break' stop, which is misleading, plus it lacks the specificity that
might help the user know why their particular case is a problem: the
commit they intended to amend became empty and was dropped, so amending
would affect the wrong commit.  Reword the error accordingly.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
jch
Elijah Newren 2026-09-01 22:24:39 +00:00 committed by Junio C Hamano
parent d692305326
commit a3837282fe
2 changed files with 2 additions and 2 deletions

View File

@ -1332,7 +1332,7 @@ static int parse_and_validate_options(int argc, const char *argv[],
else if (is_from_cherry_pick(whence))
die(_("You are in the middle of a cherry-pick -- cannot amend."));
else if (is_from_rebase_now_empty(whence))
die(_("You are in the middle of a rebase -- cannot amend."));
die(_("The now-empty commit has been dropped -- cannot amend."));
}
if (fixup_message && squash_message)
die(_("options '%s' and '%s' cannot be used together"), "--squash", "--fixup");

View File

@ -1851,7 +1851,7 @@ test_expect_success 'correct error message for commit --amend after empty pick'
) &&
echo x>file1 &&
test_must_fail git commit -a --amend 2>err &&
test_grep "middle of a rebase -- cannot amend." err
test_grep "now-empty commit has been dropped -- cannot amend." err
'

test_expect_success 'todo has correct onto hash' '