X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-rebase.sh;h=c9942f24009bd01ee0fee8990f64e64d9e43364c;hb=e5f4e214636f9c9bd36c2897634108d5ad5587a1;hp=c5906611794adadfbd37463481412abae6f11a8f;hpb=e2b1accc59ab5d682d71fd801ebe959c3e871488;p=git.git diff --git a/git-rebase.sh b/git-rebase.sh index c59066117..c9942f240 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -59,20 +59,20 @@ continue_merge () { die "$RESOLVEMSG" fi + cmt=`cat $dotest/current` if ! git diff-index --quiet HEAD then - if ! git-commit -C "`cat $dotest/current`" + if ! git-commit -C "$cmt" then echo "Commit failed, please do not call \"git commit\"" echo "directly, but instead do one of the following: " die "$RESOLVEMSG" fi - printf "Committed: %0${prec}d" $msgnum + printf "Committed: %0${prec}d " $msgnum else - printf "Already applied: %0${prec}d" $msgnum + printf "Already applied: %0${prec}d " $msgnum fi - echo ' '`git rev-list --pretty=oneline -1 HEAD | \ - sed 's/^[a-f0-9]\+ //'` + git rev-list --pretty=oneline -1 "$cmt" | sed -e 's/^[^ ]* //' prev_head=`git rev-parse HEAD^0` # save the resulting commit so we can read-tree on it later @@ -101,7 +101,7 @@ call_merge () { return ;; 1) - test -d "$GIT_DIR/rr-cache" && git rerere + git rerere die "$RESOLVEMSG" ;; 2) @@ -160,10 +160,7 @@ do --skip) if test -d "$dotest" then - if test -d "$GIT_DIR/rr-cache" - then - git rerere clear - fi + git rerere clear prev_head="`cat $dotest/prev_head`" end="`cat $dotest/end`" msgnum="`cat $dotest/msgnum`" @@ -181,10 +178,7 @@ do exit ;; --abort) - if test -d "$GIT_DIR/rr-cache" - then - git rerere clear - fi + git rerere clear if test -d "$dotest" then rm -r "$dotest" @@ -222,9 +216,11 @@ do -v|--verbose) verbose=t ;; + --whitespace=*) + git_am_opt="$git_am_opt $1" + ;; -C*) - git_am_opt=$1 - shift + git_am_opt="$git_am_opt $1" ;; -*) usage @@ -305,10 +301,12 @@ branch=$(git rev-parse --verify "${branch_name}^0") || exit # Now we are rebasing commits $upstream..$branch on top of $onto -# Check if we are already based on $onto, but this should be -# done only when upstream and onto are the same. +# Check if we are already based on $onto with linear history, +# but this should be done only when upstream and onto are the same. mb=$(git merge-base "$onto" "$branch") -if test "$upstream" = "$onto" && test "$mb" = "$onto" +if test "$upstream" = "$onto" && test "$mb" = "$onto" && + # linear history? + ! git rev-list --parents "$onto".."$branch" | grep " .* " > /dev/null then echo >&2 "Current branch $branch_name is up to date." exit 0