summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-12-14 15:35:44 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-12-14 15:35:44 (GMT)
commit37ad7ca7dbb0bef2b902f6bc7d3346ddff1667a5 (patch)
tree22fec01c1e15f007c681b68cc217688e1002f5f3
parente0cbf12bf7d8b46292774ac91db8757d60b0f4df (diff)
parent729ec9e23a13a0610a19a24901d0ab5e2bc44a12 (diff)
downloadgit-37ad7ca7dbb0bef2b902f6bc7d3346ddff1667a5.zip
git-37ad7ca7dbb0bef2b902f6bc7d3346ddff1667a5.tar.gz
git-37ad7ca7dbb0bef2b902f6bc7d3346ddff1667a5.tar.bz2
Merge branch 'mz/rebase-abort-reflog-fix' into maint
* mz/rebase-abort-reflog-fix: rebase --abort: do not update branch ref
-rwxr-xr-xgit-rebase.sh19
-rwxr-xr-xt/t3407-rebase-abort.sh12
2 files changed, 22 insertions, 9 deletions
diff --git a/git-rebase.sh b/git-rebase.sh
index ec08f9c..6a7e5e0 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -275,15 +275,16 @@ do
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
diff --git a/t/t3407-rebase-abort.sh b/t/t3407-rebase-abort.sh
index fbb3f2e..e573dc8 100755
--- a/t/t3407-rebase-abort.sh
+++ b/t/t3407-rebase-abort.sh
@@ -72,6 +72,18 @@ testrebase() {
test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
test ! -d "$dotest"
'
+
+ test_expect_success "rebase$type --abort does not update reflog" '
+ cd "$work_dir" &&
+ # Clean up the state from the previous one
+ git reset --hard pre-rebase &&
+ git reflog show to-rebase > reflog_before &&
+ test_must_fail git rebase$type master &&
+ git rebase --abort &&
+ git reflog show to-rebase > reflog_after &&
+ test_cmp reflog_before reflog_after &&
+ rm reflog_before reflog_after
+ '
}
testrebase "" .git/rebase-apply