Skip to content

Commit

Permalink
Catch and handle git-commit failures in git-rebase --interactive
Browse files Browse the repository at this point in the history
If git-commit fails for any reason then git-rebase needs to stop
and not plow through the rest of the series.  Its unlikely that
a future git-commit will succeed if the current attempt failed.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Shawn O. Pearce authored and Junio C Hamano committed Dec 20, 2007
1 parent c5b09fe commit dbedf97
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions git-rebase--interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -289,22 +289,22 @@ do_next () {
output git reset --soft HEAD^
pick_one -n $sha1 || failed=t
echo "$author_script" > "$DOTEST"/author-script
case $failed in
f)
if test $failed = f
then
# This is like --amend, but with a different message
eval "$author_script"
GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
$USE_OUTPUT git commit --no-verify -F "$MSG" $EDIT_COMMIT
;;
t)
$USE_OUTPUT git commit --no-verify -F "$MSG" $EDIT_COMMIT || failed=t
fi
if test $failed = t
then
cp "$MSG" "$GIT_DIR"/MERGE_MSG
warn
warn "Could not apply $sha1... $rest"
die_with_patch $sha1 ""
;;
esac
fi
;;
*)
warn "Unknown command: $command $sha1 $rest"
Expand Down Expand Up @@ -372,7 +372,8 @@ do
test ! -f "$DOTEST"/amend || git reset --soft HEAD^
} &&
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE &&
git commit --no-verify -F "$DOTEST"/message -e
git commit --no-verify -F "$DOTEST"/message -e ||
die "Could not commit staged changes."

require_clean_work_tree
do_rest
Expand Down

0 comments on commit dbedf97

Please sign in to comment.