Merge branch 'pb/gitweb'
[gitweb.git] / git-rebase--interactive.sh
index ec4299ae30d06a6a19f5108b00dc8bc9ccd65cb0..bdec43c3f604b22d29b52bd6a026785a6ac0f21b 100755 (executable)
@@ -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 &&
@@ -322,7 +332,7 @@ do_next () {
                        MSG_OPT=
                        MSG_FILE=
                        rm -f "$SQUASH_MSG" || exit
-                       cp -v "$MSG" "$GIT_DIR"/SQUASH_MSG
+                       cp "$MSG" "$GIT_DIR"/SQUASH_MSG
                        rm -f "$GIT_DIR"/MERGE_MSG || exit
                        ;;
                esac
@@ -512,6 +522,7 @@ first and then run 'git rebase --continue' again."
                ;;
        --)
                shift
+               run_pre_rebase_hook ${1+"$@"}
                test $# -eq 1 -o $# -eq 2 || usage
                test -d "$DOTEST" &&
                        die "Interactive rebase already started"