Skip to content

Commit 3f735b6

Browse files
dschogitster
authored andcommitted
rebase: fix "rebase --continue" breakage
The --skip case was handled properly when rebasing without --merge, but the --continue case was not. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 6fd2f5e commit 3f735b6

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

git-rebase.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,11 @@ do
170170
finish_rb_merge
171171
exit
172172
fi
173-
git am --resolved --3way --resolvemsg="$RESOLVEMSG"
173+
head_name=$(cat .dotest/head-name) &&
174+
onto=$(cat .dotest/onto) &&
175+
orig_head=$(cat .dotest/orig-head) &&
176+
git am --resolved --3way --resolvemsg="$RESOLVEMSG" &&
177+
move_to_original_branch
174178
exit
175179
;;
176180
--skip)

t/t3403-rebase-skip.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ test_expect_success 'rebase --skip with am -3' '
3939
git reset --hard HEAD &&
4040
git rebase --skip
4141
'
42+
43+
test_expect_success 'rebase moves back to skip-reference' '
44+
test refs/heads/skip-reference = $(git symbolic-ref HEAD) &&
45+
git branch post-rebase &&
46+
git reset --hard pre-rebase &&
47+
! git rebase master &&
48+
echo "hello" > hello &&
49+
git add hello &&
50+
git rebase --continue &&
51+
test refs/heads/skip-reference = $(git symbolic-ref HEAD) &&
52+
git reset --hard post-rebase
53+
'
54+
4255
test_expect_success 'checkout skip-merge' 'git checkout -f skip-merge'
4356

4457
test_expect_failure 'rebase with --merge' 'git rebase --merge master'
@@ -51,6 +64,10 @@ test_expect_success 'rebase --skip with --merge' '
5164
test_expect_success 'merge and reference trees equal' \
5265
'test -z "`git diff-tree skip-merge skip-reference`"'
5366

67+
test_expect_success 'moved back to branch correctly' '
68+
test refs/heads/skip-merge = $(git symbolic-ref HEAD)
69+
'
70+
5471
test_debug 'gitk --all & sleep 1'
5572

5673
test_done

0 commit comments

Comments
 (0)