rebase --skip: correctly wrap-up when skipping the last patch
When "rebase --skip" is used to skip the last patch in the series, the code to wrap up the rewrite by copying the notes from old to new commits and also by running the post-rewrite hook was bypassed. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
77e572653b
commit
ef88ad2387
@ -554,13 +554,6 @@ then
|
|||||||
resume=
|
resume=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$this" -gt "$last"
|
|
||||||
then
|
|
||||||
say Nothing to do.
|
|
||||||
rm -fr "$dotest"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
while test "$this" -le "$last"
|
while test "$this" -le "$last"
|
||||||
do
|
do
|
||||||
msgnum=`printf "%0${prec}d" $this`
|
msgnum=`printf "%0${prec}d" $this`
|
||||||
|
@ -10,7 +10,11 @@ test_expect_success 'setup' '
|
|||||||
test_commit A foo A &&
|
test_commit A foo A &&
|
||||||
test_commit B foo B &&
|
test_commit B foo B &&
|
||||||
test_commit C foo C &&
|
test_commit C foo C &&
|
||||||
test_commit D foo D
|
test_commit D foo D &&
|
||||||
|
git checkout A^0 &&
|
||||||
|
test_commit E bar E &&
|
||||||
|
test_commit F foo F &&
|
||||||
|
git checkout master
|
||||||
'
|
'
|
||||||
|
|
||||||
mkdir .git/hooks
|
mkdir .git/hooks
|
||||||
@ -79,6 +83,18 @@ EOF
|
|||||||
verify_hook_input
|
verify_hook_input
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'git rebase --skip the last one' '
|
||||||
|
git reset --hard F &&
|
||||||
|
clear_hook_input &&
|
||||||
|
test_must_fail git rebase --onto D A &&
|
||||||
|
git rebase --skip &&
|
||||||
|
echo rebase >expected.args &&
|
||||||
|
cat >expected.data <<EOF &&
|
||||||
|
$(git rev-parse E) $(git rev-parse HEAD)
|
||||||
|
EOF
|
||||||
|
verify_hook_input
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'git rebase -m' '
|
test_expect_success 'git rebase -m' '
|
||||||
git reset --hard D &&
|
git reset --hard D &&
|
||||||
clear_hook_input &&
|
clear_hook_input &&
|
||||||
|
Loading…
Reference in New Issue
Block a user