From: Junio C Hamano Date: Mon, 13 Dec 2010 05:49:51 +0000 (-0800) Subject: Merge branch 'mz/rebase-abort-reflog-fix' X-Git-Tag: v1.7.4-rc0~60 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/6b236bfcb011048a4c2abc6b44290c738a3de699?ds=inline;hp=-c Merge branch 'mz/rebase-abort-reflog-fix' * mz/rebase-abort-reflog-fix: rebase --abort: do not update branch ref --- 6b236bfcb011048a4c2abc6b44290c738a3de699 diff --combined git-rebase.sh index 9a6d7a4730,7c38c00a1e..3459fe4f60 --- a/git-rebase.sh +++ b/git-rebase.sh @@@ -49,8 -49,7 +49,8 @@@ do_merge dotest="$GIT_DIR"/rebase-merge prec=4 verbose= -diffstat=$(git config --bool rebase.stat) +diffstat= +test "$(git config --bool rebase.stat)" = true && diffstat=t git_am_opt= rebase_root= force_rebase= @@@ -275,15 -274,16 +275,16 @@@ d die "No rebase in progress?" git rerere clear - if test -d "$dotest" - then - GIT_QUIET=$(cat "$dotest/quiet") - move_to_original_branch - else - dotest="$GIT_DIR"/rebase-apply - GIT_QUIET=$(cat "$dotest/quiet") - move_to_original_branch - fi + + test -d "$dotest" || dotest="$GIT_DIR"/rebase-apply + + head_name="$(cat "$dotest"/head-name)" && + case "$head_name" in + refs/*) + git symbolic-ref HEAD $head_name || + die "Could not move back to $head_name" + ;; + esac git reset --hard $(cat "$dotest/orig-head") rm -r "$dotest" exit @@@ -413,7 -413,19 +414,7 @@@ els fi fi -# The tree must be really really clean. -if ! git update-index --ignore-submodules --refresh > /dev/null; then - echo >&2 "cannot rebase: you have unstaged changes" - git diff-files --name-status -r --ignore-submodules -- >&2 - exit 1 -fi -diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --) -case "$diff" in -?*) echo >&2 "cannot rebase: your index contains uncommitted changes" - echo >&2 "$diff" - exit 1 - ;; -esac +require_clean_work_tree "rebase" "Please commit or stash them." if test -z "$rebase_root" then