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>
This commit is contained in:
Elijah Newren authored and Junio C Hamano committed 2026-09-01 21:24:33 -07:00
1 parent d692305326
commit a3837282fe
2 files changed
+2 -2

No files matched your search

+1 -1
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");
+1 -1
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' '