git rebase --abort: always restore the right commit
Previously, --abort would end by git resetting to ORIG_HEAD, but some commands, such as git reset --hard (which happened in git rebase --skip, but could just as well be typed by the user), would have already modified ORIG_HEAD. Just use the orig-head we store in $dotest instead. Signed-off-by: Mike Hommey <mh@glandium.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
f32086becc
commit
48411d2233
@ -208,16 +208,15 @@ do
|
|||||||
if test -d "$dotest"
|
if test -d "$dotest"
|
||||||
then
|
then
|
||||||
move_to_original_branch
|
move_to_original_branch
|
||||||
rm -r "$dotest"
|
|
||||||
elif test -d .dotest
|
elif test -d .dotest
|
||||||
then
|
then
|
||||||
dotest=.dotest
|
dotest=.dotest
|
||||||
move_to_original_branch
|
move_to_original_branch
|
||||||
rm -r .dotest
|
|
||||||
else
|
else
|
||||||
die "No rebase in progress?"
|
die "No rebase in progress?"
|
||||||
fi
|
fi
|
||||||
git reset --hard ORIG_HEAD
|
git reset --hard $(cat $dotest/orig-head)
|
||||||
|
rm -r "$dotest"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
--onto)
|
--onto)
|
||||||
|
@ -29,7 +29,7 @@ test_expect_success 'rebase --abort' '
|
|||||||
test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase)
|
test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_failure 'rebase --abort after --skip' '
|
test_expect_success 'rebase --abort after --skip' '
|
||||||
# Clean up the state from the previous one
|
# Clean up the state from the previous one
|
||||||
git reset --hard pre-rebase
|
git reset --hard pre-rebase
|
||||||
rm -rf .dotest
|
rm -rf .dotest
|
||||||
|
Reference in New Issue
Block a user