]> Pileus Git - ~andy/git/commitdiff
Merge branch 'ns/rebase-noverify'
authorJunio C Hamano <gitster@pobox.com>
Sun, 19 Oct 2008 23:05:58 +0000 (16:05 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 19 Oct 2008 23:05:58 +0000 (16:05 -0700)
* ns/rebase-noverify:
  rebase: Document --no-verify option to bypass pre-rebase hook
  rebase --no-verify

1  2 
git-rebase--interactive.sh

index 124cb5846b07ee9aa72fac4cbb88098c94f5741a,b0d757db5dbb97d91014b22e34938ca0764dd4ef..86290f63b25f921de5c78b087e111e6b872676fb
@@@ -26,6 -26,7 +26,7 @@@ i,interactive      always used (no-op
  continue           continue rebasing process
  abort              abort rebasing process and restore original branch
  skip               skip current patch and continue rebasing process
+ no-verify          override pre-rebase hook from stopping the operation
  "
  
  . git-sh-setup
@@@ -41,6 -42,7 +42,7 @@@ PRESERVE_MERGES
  STRATEGY=
  ONTO=
  VERBOSE=
+ OK_TO_SKIP_PRE_REBASE=
  
  GIT_CHERRY_PICK_HELP="  After resolving the conflicts,
  mark the corrected paths with 'git add <paths>', and
@@@ -66,7 -68,8 +68,8 @@@ output () 
  }
  
  run_pre_rebase_hook () {
-       if test -x "$GIT_DIR/hooks/pre-rebase"
+       if test -z "$OK_TO_SKIP_PRE_REBASE" &&
+          test -x "$GIT_DIR/hooks/pre-rebase"
        then
                "$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || {
                        echo >&2 "The pre-rebase hook refused to rebase."
@@@ -277,7 -280,7 +280,7 @@@ do_next () 
                "$DOTEST"/amend || exit
        read command sha1 rest < "$TODO"
        case "$command" in
 -      '#'*|'')
 +      '#'*|''|noop)
                mark_action_done
                ;;
        pick|p)
  
                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
@@@ -421,6 -419,11 +424,11 @@@ get_saved_options () 
  while test $# != 0
  do
        case "$1" in
+       --no-verify)
+               OK_TO_SKIP_PRE_REBASE=yes
+               ;;
+       --verify)
+               ;;
        --continue)
                is_standalone "$@" || usage
                get_saved_options
@@@ -584,7 -587,6 +592,7 @@@ first and then run 'git rebase --contin
                        --abbrev=7 --reverse --left-right --cherry-pick \
                        $UPSTREAM...$HEAD | \
                        sed -n "s/^>/pick /p" > "$TODO"
 +              test -s "$TODO" || echo noop >> "$TODO"
                cat >> "$TODO" << EOF
  
  # Rebase $SHORTUPSTREAM..$SHORTHEAD onto $SHORTONTO