rebase -i: clean error message for --continue after failed exec
After an "exec false" stops the rebase and gives the control back to the user, if changes are added to the index, "rebase --continue" fails with this message, which may technically be correct, but does not point at the real problem: .../git-rebase--interactive: line 774: .../.git/rebase-merge/author-script: No such file or directory We could try auto-amending HEAD, but this goes against the logic of .git/rebase-merge/author-script (see also the testcase 'auto-amend only edited commits after "edit"' in t3404-rebase-interactive.sh) to auto-amend something the user hasn't explicitely asked to edit. Instead of doing anything automatically, detect the situation and give a clean error message. While we're there, also clarify the error message in case '. "$author_script"' fails, which now corresponds to really weird senario where the author script exists but can't be read. Test-case-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
cd2b8ae983
commit
ffaaed88ae
@ -647,8 +647,24 @@ continue)
|
||||
then
|
||||
: Nothing to commit -- skip this
|
||||
else
|
||||
if ! test -f "$author_script"
|
||||
then
|
||||
die "You have staged changes in your working tree. If these changes are meant to be
|
||||
squashed into the previous commit, run:
|
||||
|
||||
git commit --amend
|
||||
|
||||
If they are meant to go into a new commit, run:
|
||||
|
||||
git commit
|
||||
|
||||
In both case, once you're done, continue with:
|
||||
|
||||
git rebase --continue
|
||||
"
|
||||
fi
|
||||
. "$author_script" ||
|
||||
die "Cannot find the author identity"
|
||||
die "Error trying to find the author identity to amend commit"
|
||||
current_head=
|
||||
if test -f "$amend"
|
||||
then
|
||||
|
Reference in New Issue
Block a user