From: Junio C Hamano Date: Thu, 17 Jul 2008 00:12:09 +0000 (-0700) Subject: Merge branch 'rs/rebase-checkout-not-so-quiet' X-Git-Tag: v1.6.0-rc0~42 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/5324a6339acfabdb27c9ef410525eb6b82d05002?ds=inline;hp=-c Merge branch 'rs/rebase-checkout-not-so-quiet' * rs/rebase-checkout-not-so-quiet: git-rebase: report checkout failure Conflicts: git-rebase.sh --- 5324a6339acfabdb27c9ef410525eb6b82d05002 diff --combined git-rebase.sh index 56cf6f0316,7825f88952..6ef5754814 --- a/git-rebase.sh +++ b/git-rebase.sh @@@ -14,7 -14,7 +14,7 @@@ It is possible that a merge failure wil completely automatic. You will have to resolve any such merge failure and run git rebase --continue. Another option is to bypass the commit that caused the merge failure with git rebase --skip. To restore the -original and remove the .dotest working files, use the command +original and remove the .git/rebase working files, use the command git rebase --abort instead. Note that if is not specified on the command line, the @@@ -42,7 -42,7 +42,7 @@@ To restore the original branch and sto unset newbase strategy=recursive do_merge= -dotest=$GIT_DIR/.dotest-merge +dotest="$GIT_DIR"/rebase-merge prec=4 verbose= git_am_opt= @@@ -150,7 -150,7 +150,7 @@@ while test $# != do case "$1" in --continue) - test -d "$dotest" -o -d .dotest || + test -d "$dotest" -o -d "$GIT_DIR"/rebase || die "No rebase in progress?" git diff-files --quiet --ignore-submodules || { @@@ -173,15 -173,15 +173,15 @@@ finish_rb_merge exit fi - head_name=$(cat .dotest/head-name) && - onto=$(cat .dotest/onto) && - orig_head=$(cat .dotest/orig-head) && + head_name=$(cat "$GIT_DIR"/rebase/head-name) && + onto=$(cat "$GIT_DIR"/rebase/onto) && + orig_head=$(cat "$GIT_DIR"/rebase/orig-head) && git am --resolved --3way --resolvemsg="$RESOLVEMSG" && move_to_original_branch exit ;; --skip) - test -d "$dotest" -o -d .dotest || + test -d "$dotest" -o -d "$GIT_DIR"/rebase || die "No rebase in progress?" git reset --hard HEAD || exit $? @@@ -201,15 -201,15 +201,15 @@@ finish_rb_merge exit fi - head_name=$(cat .dotest/head-name) && - onto=$(cat .dotest/onto) && - orig_head=$(cat .dotest/orig-head) && + head_name=$(cat "$GIT_DIR"/rebase/head-name) && + onto=$(cat "$GIT_DIR"/rebase/onto) && + orig_head=$(cat "$GIT_DIR"/rebase/orig-head) && git am -3 --skip --resolvemsg="$RESOLVEMSG" && move_to_original_branch exit ;; --abort) - test -d "$dotest" -o -d .dotest || + test -d "$dotest" -o -d "$GIT_DIR"/rebase || die "No rebase in progress?" git rerere clear @@@ -217,7 -217,7 +217,7 @@@ then move_to_original_branch else - dotest=.dotest + dotest="$GIT_DIR"/rebase move_to_original_branch fi git reset --hard $(cat "$dotest/orig-head") @@@ -265,24 -265,24 +265,24 @@@ shift done -# Make sure we do not have .dotest +# Make sure we do not have $GIT_DIR/rebase if test -z "$do_merge" then - if mkdir .dotest + if mkdir "$GIT_DIR"/rebase then - rmdir .dotest + rmdir "$GIT_DIR"/rebase else echo >&2 ' -It seems that I cannot create a .dotest directory, and I wonder if you +It seems that I cannot create a '"$GIT_DIR"'/rebase directory, and I wonder if you are in the middle of patch application or another rebase. If that is not -the case, please rm -fr .dotest and run me again. I am stopping in case +the case, please rm -fr '"$GIT_DIR"'/rebase and run me again. I am stopping in case you still have something valuable there.' exit 1 fi else if test -d "$dotest" then - die "previous dotest directory $dotest still exists." \ + die "previous rebase directory $dotest still exists." \ 'try git-rebase < --continue | --abort >' fi fi @@@ -376,9 -376,7 +376,8 @@@ f # Detach HEAD and reset the tree echo "First, rewinding head to replay your work on top of it..." - git checkout "$onto^0" >/dev/null 2>&1 || - die "could not detach HEAD" + git checkout -q "$onto^0" || die "could not detach HEAD" +git update-ref ORIG_HEAD $branch # If the $onto is a proper descendant of the tip of the branch, then # we just fast forwarded. @@@ -396,10 -394,10 +395,10 @@@ the git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" && move_to_original_branch ret=$? - test 0 != $ret -a -d .dotest && - echo $head_name > .dotest/head-name && - echo $onto > .dotest/onto && - echo $orig_head > .dotest/orig-head + test 0 != $ret -a -d "$GIT_DIR"/rebase && + echo $head_name > "$GIT_DIR"/rebase/head-name && + echo $onto > "$GIT_DIR"/rebase/onto && + echo $orig_head > "$GIT_DIR"/rebase/orig-head exit $ret fi