From: Shawn O. Pearce Date: Thu, 9 Oct 2008 16:33:23 +0000 (-0700) Subject: Merge branch 'sg/maint-intrebase-msghook' into maint X-Git-Tag: v1.6.0.3~24 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/44c33a5b9603fba7c9556512a72e4e392ba4ae2d?ds=inline;hp=-c Merge branch 'sg/maint-intrebase-msghook' into maint * sg/maint-intrebase-msghook: rebase -i: remove leftover debugging rebase -i: proper prepare-commit-msg hook argument when squashing --- 44c33a5b9603fba7c9556512a72e4e392ba4ae2d diff --combined git-rebase--interactive.sh index 3350f90cb1,77e1132590..bdec43c3f6 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@@ -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 @@@ -339,7 -334,7 +344,7 @@@ 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"