rebase -i: give rerere a chance

Like non-interactive rebase, interactive mode now calls rerere when
appropriate.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 2007-11-22 11:18:10 +00:00 committed by Junio C Hamano
parent d25430c5f8
commit ecfe72ff65
1 changed files with 4 additions and 1 deletions

View File

@ -90,6 +90,7 @@ make_patch () {


die_with_patch () { die_with_patch () {
make_patch "$1" make_patch "$1"
git rerere
die "$2" die "$2"
} }


@ -175,13 +176,13 @@ pick_one_preserving_merges () {
msg="$(git cat-file commit $sha1 | sed -e '1,/^$/d')" msg="$(git cat-file commit $sha1 | sed -e '1,/^$/d')"
# No point in merging the first parent, that's HEAD # No point in merging the first parent, that's HEAD
new_parents=${new_parents# $first_parent} new_parents=${new_parents# $first_parent}
# NEEDSWORK: give rerere a chance
if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \ if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \ GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \ GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
output git merge $STRATEGY -m "$msg" \ output git merge $STRATEGY -m "$msg" \
$new_parents $new_parents
then then
git rerere
printf "%s\n" "$msg" > "$GIT_DIR"/MERGE_MSG printf "%s\n" "$msg" > "$GIT_DIR"/MERGE_MSG
die Error redoing merge $sha1 die Error redoing merge $sha1
fi fi
@ -369,6 +370,7 @@ do
--abort) --abort)
comment_for_reflog abort comment_for_reflog abort


git rerere clear
test -d "$DOTEST" || die "No interactive rebase running" test -d "$DOTEST" || die "No interactive rebase running"


HEADNAME=$(cat "$DOTEST"/head-name) HEADNAME=$(cat "$DOTEST"/head-name)
@ -385,6 +387,7 @@ do
--skip) --skip)
comment_for_reflog skip comment_for_reflog skip


git rerere clear
test -d "$DOTEST" || die "No interactive rebase running" test -d "$DOTEST" || die "No interactive rebase running"


output git reset --hard && do_rest output git reset --hard && do_rest