X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-rebase.sh;h=1d96f32685cdc51c89c63516519e8b544ab818af;hb=8d9721c86b0169c282ad1c5528317eafeb7fb0f7;hp=99cedadda1da1ba2f62c22acfbd6477b1b2b38cb;hpb=bcf316187699c5e97bf47c1b8a00c844bf809fbc;p=git.git diff --git a/git-rebase.sh b/git-rebase.sh index 99cedadda..1d96f3268 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -45,6 +45,7 @@ do_merge= dotest=$GIT_DIR/.dotest-merge prec=4 verbose= +git_am_opt= continue_merge () { test -n "$prev_head" || die "prev_head must be defined" @@ -58,7 +59,7 @@ continue_merge () { die "$RESOLVEMSG" fi - if test -n "`git-diff-index HEAD`" + if ! git-diff-index --quiet HEAD then if ! git-commit -C "`cat $dotest/current`" then @@ -123,13 +124,11 @@ while case "$#" in 0) break ;; esac do case "$1" in --continue) - diff=$(git-diff-files) - case "$diff" in - ?*) echo "You must edit all merge conflicts and then" + git-diff-files --quiet || { + echo "You must edit all merge conflicts and then" echo "mark them as resolved using git update-index" exit 1 - ;; - esac + } if test -d "$dotest" then prev_head="`cat $dotest/prev_head`" @@ -213,6 +212,10 @@ do -v|--verbose) verbose=t ;; + -C*) + git_am_opt=$1 + shift + ;; -*) usage ;; @@ -249,7 +252,8 @@ fi git-update-index --refresh || exit diff=$(git-diff-index --cached --name-status -r HEAD) case "$diff" in -?*) echo "$diff" +?*) echo "cannot rebase: your index is not up-to-date" + echo "$diff" exit 1 ;; esac @@ -259,6 +263,10 @@ upstream_name="$1" upstream=`git rev-parse --verify "${upstream_name}^0"` || die "invalid upstream $upstream_name" +# Make sure the branch to rebase onto is valid. +onto_name=${newbase-"$upstream_name"} +onto=$(git-rev-parse --verify "${onto_name}^0") || exit + # If a hook exists, give it a chance to interrupt if test -x "$GIT_DIR/hooks/pre-rebase" then @@ -285,10 +293,6 @@ case "$#" in esac branch=$(git-rev-parse --verify "${branch_name}^0") || exit -# Make sure the branch to rebase onto is valid. -onto_name=${newbase-"$upstream_name"} -onto=$(git-rev-parse --verify "${onto_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 @@ -321,7 +325,7 @@ fi if test -z "$do_merge" then git-format-patch -k --stdout --full-index --ignore-if-in-upstream "$upstream"..ORIG_HEAD | - git am --binary -3 -k --resolvemsg="$RESOLVEMSG" + git am $git_am_opt --binary -3 -k --resolvemsg="$RESOLVEMSG" exit $? fi