rebase: remove $branch as synonym for $orig_head
[gitweb.git] / git-rebase--interactive.sh
index 9c43c601708112b412d6f47443e875de6637e5e3..f94f057dffae6ea0e8021e6ecd09fb167e8414b8 100755 (executable)
@@ -109,18 +109,6 @@ commit_message () {
        git cat-file commit "$1" | sed "1,/^$/d"
 }
 
-run_pre_rebase_hook () {
-       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."
-                       exit 1
-               }
-       fi
-}
-
-
 orig_reflog_action="$GIT_REFLOG_ACTION"
 
 comment_for_reflog () {
@@ -682,32 +670,11 @@ rearrange_squash () {
        rm -f "$1.sq" "$1.rearranged"
 }
 
-LF='
-'
-parse_onto () {
-       case "$1" in
-       *...*)
-               if      left=${1%...*} right=${1#*...} &&
-                       onto=$(git merge-base --all ${left:-HEAD} ${right:-HEAD})
-               then
-                       case "$onto" in
-                       ?*"$LF"?* | '')
-                               exit 1 ;;
-                       esac
-                       echo "$onto"
-                       exit 0
-               fi
-       esac
-       git rev-parse --verify "$1^0"
-}
-
 case "$action" in
 continue)
        get_saved_options
        comment_for_reflog continue
 
-       test -d "$dotest" || die "No interactive rebase running"
-
        # Sanity check
        git rev-parse --verify HEAD >/dev/null ||
                die "Cannot read HEAD"
@@ -749,7 +716,6 @@ abort)
        comment_for_reflog abort
 
        git rerere clear
-       test -d "$dotest" || die "No interactive rebase running"
 
        headname=$(cat "$dotest"/head-name)
        head=$(cat "$dotest"/head)
@@ -767,55 +733,27 @@ skip)
        comment_for_reflog skip
 
        git rerere clear
-       test -d "$dotest" || die "No interactive rebase running"
 
        output git reset --hard && do_rest
        ;;
 esac
 
-if test -n "$onto"
-then
-       onto=$(parse_onto "$onto") || die "Does not point to a valid commit: $1"
-fi
-
-test -z "$rebase_root" -a $# -ge 1 -a $# -le 2 ||
-test ! -z "$rebase_root" -a $# -le 1 || usage
-test -d "$dotest" &&
-       die "Interactive rebase already started"
-
 git var GIT_COMMITTER_IDENT >/dev/null ||
        die "You need to set your committer info first"
 
-if test -z "$rebase_root"
-then
-       upstream_arg="$1"
-       upstream=$(git rev-parse --verify "$1") || die "Invalid base"
-       test -z "$onto" && onto=$upstream
-       shift
-else
-       upstream=
-       upstream_arg=--root
-       test -z "$onto" &&
-               die "You must specify --onto when using --root"
-fi
-run_pre_rebase_hook "$upstream_arg" "$@"
-
 comment_for_reflog start
 
-require_clean_work_tree "rebase" "Please commit or stash them."
-
-if test ! -z "$1"
+if test ! -z "$switch_to"
 then
-       output git checkout "$1" -- ||
-               die "Could not checkout $1"
+       output git checkout "$switch_to" -- ||
+               die "Could not checkout $switch_to"
 fi
 
 head=$(git rev-parse --verify HEAD) || die "No HEAD?"
 mkdir "$dotest" || die "Could not create temporary $dotest"
 
 : > "$dotest"/interactive || die "Could not mark as interactive"
-git symbolic-ref HEAD > "$dotest"/head-name 2> /dev/null ||
-       echo "detached HEAD" > "$dotest"/head-name
+echo "$head_name" > "$dotest"/head-name
 
 echo $head > "$dotest"/head
 case "$rebase_root" in