Merge branch 'js/rebase-i-rerere'
authorJunio C Hamano <gitster@pobox.com>
Mon, 3 Dec 2007 07:01:02 +0000 (23:01 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Dec 2007 07:01:02 +0000 (23:01 -0800)
* js/rebase-i-rerere:
rebase -i: give rerere a chance

1  2 
git-rebase--interactive.sh
index beeefec0e473efc8af67c702c88b655131eea026,354510a3ba169910cd9c4c6fac92bec6ffdeecc9..f83e00fe8fec63d5c58f375ec49ee8bf865f1344
@@@ -30,11 -30,6 +30,11 @@@ test -d "$REWRITTEN" && PRESERVE_MERGES
  test -f "$DOTEST"/strategy && STRATEGY="$(cat "$DOTEST"/strategy)"
  test -f "$DOTEST"/verbose && VERBOSE=t
  
 +GIT_CHERRY_PICK_HELP="  After resolving the conflicts,
 +mark the corrected paths with 'git add <paths>', and
 +run 'git rebase --continue'"
 +export GIT_CHERRY_PICK_HELP
 +
  warn () {
        echo "$*" >&2
  }
@@@ -95,6 -90,7 +95,7 @@@ make_patch () 
  
  die_with_patch () {
        make_patch "$1"
+       git rerere
        die "$2"
  }
  
@@@ -180,13 -176,13 +181,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
@@@ -374,6 -370,7 +375,7 @@@ d
        --abort)
                comment_for_reflog abort
  
+               git rerere clear
                test -d "$DOTEST" || die "No interactive rebase running"
  
                HEADNAME=$(cat "$DOTEST"/head-name)
        --skip)
                comment_for_reflog skip
  
+               git rerere clear
                test -d "$DOTEST" || die "No interactive rebase running"
  
                output git reset --hard && do_rest