Merge branch 'sg/maint-intrebase-msghook' into maint
authorShawn O. Pearce <spearce@spearce.org>
Thu, 9 Oct 2008 16:33:23 +0000 (09:33 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Thu, 9 Oct 2008 16:33:23 +0000 (09:33 -0700)
* sg/maint-intrebase-msghook:
rebase -i: remove leftover debugging
rebase -i: proper prepare-commit-msg hook argument when squashing

1  2 
git-rebase--interactive.sh
index 3350f90cb1837238cd29786fa2b1541e1c4682bc,77e1132590cb3dfd6fb930414c06fb0c4ef1628e..bdec43c3f604b22d29b52bd6a026785a6ac0f21b
@@@ -65,16 -65,6 +65,16 @@@ output () 
        esac
  }
  
 +run_pre_rebase_hook () {
 +      if test -x "$GIT_DIR/hooks/pre-rebase"
 +      then
 +              "$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || {
 +                      echo >&2 "The pre-rebase hook refused to rebase."
 +                      exit 1
 +              }
 +      fi
 +}
 +
  require_clean_work_tree () {
        # test if working tree is dirty
        git rev-parse --verify HEAD > /dev/null &&
@@@ -314,23 -304,28 +314,28 @@@ do_next () 
  
                mark_action_done
                make_squash_message $sha1 > "$MSG"
+               failed=f
+               author_script=$(get_author_ident_from_commit HEAD)
+               output git reset --soft HEAD^
+               pick_one -n $sha1 || failed=t
                case "$(peek_next_command)" in
                squash|s)
                        EDIT_COMMIT=
                        USE_OUTPUT=output
+                       MSG_OPT=-F
+                       MSG_FILE="$MSG"
                        cp "$MSG" "$SQUASH_MSG"
                        ;;
                *)
                        EDIT_COMMIT=-e
                        USE_OUTPUT=
+                       MSG_OPT=
+                       MSG_FILE=
                        rm -f "$SQUASH_MSG" || exit
+                       cp "$MSG" "$GIT_DIR"/SQUASH_MSG
+                       rm -f "$GIT_DIR"/MERGE_MSG || exit
                        ;;
                esac
-               failed=f
-               author_script=$(get_author_ident_from_commit HEAD)
-               output git reset --soft HEAD^
-               pick_one -n $sha1 || failed=t
                echo "$author_script" > "$DOTEST"/author-script
                if test $failed = f
                then
                        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 || failed=t
+                       $USE_OUTPUT git commit --no-verify $MSG_OPT "$MSG_FILE" $EDIT_COMMIT || failed=t
                fi
                if test $failed = t
                then
@@@ -517,7 -512,6 +522,7 @@@ first and then run 'git rebase --contin
                ;;
        --)
                shift
 +              run_pre_rebase_hook ${1+"$@"}
                test $# -eq 1 -o $# -eq 2 || usage
                test -d "$DOTEST" &&
                        die "Interactive rebase already started"