rebase -i: give rerere a chance
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Thu, 22 Nov 2007 11:18:10 +0000 (11:18 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Nov 2007 01:57:28 +0000 (17:57 -0800)
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>
git-rebase--interactive.sh

index e9cd6fd999695daa1c5ba49835f53041d4131f3a..354510a3ba169910cd9c4c6fac92bec6ffdeecc9 100755 (executable)
@@ -90,6 +90,7 @@ make_patch () {
 
 die_with_patch () {
        make_patch "$1"
+       git rerere
        die "$2"
 }
 
@@ -175,13 +176,13 @@ pick_one_preserving_merges () {
                        msg="$(git cat-file commit $sha1 | sed -e '1,/^$/d')"
                        # No point in merging the first parent, that's HEAD
                        new_parents=${new_parents# $first_parent}
-                       # NEEDSWORK: give rerere a chance
                        if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
                                GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
                                GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
                                output git merge $STRATEGY -m "$msg" \
                                        $new_parents
                        then
+                               git rerere
                                printf "%s\n" "$msg" > "$GIT_DIR"/MERGE_MSG
                                die Error redoing merge $sha1
                        fi
@@ -369,6 +370,7 @@ do
        --abort)
                comment_for_reflog abort
 
+               git rerere clear
                test -d "$DOTEST" || die "No interactive rebase running"
 
                HEADNAME=$(cat "$DOTEST"/head-name)
@@ -385,6 +387,7 @@ do
        --skip)
                comment_for_reflog skip
 
+               git rerere clear
                test -d "$DOTEST" || die "No interactive rebase running"
 
                output git reset --hard && do_rest