git-rebase.sh: Fix --merge --abort failures when path contains whitespace
Also update t/t3407-rebase-abort.sh to expose the bug. Signed-off-by: Bryan Donlan <bdonlan@fushizen.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c697ad143b
commit
97b88dd58c
@ -214,7 +214,7 @@ do
|
|||||||
else
|
else
|
||||||
die "No rebase in progress?"
|
die "No rebase in progress?"
|
||||||
fi
|
fi
|
||||||
git reset --hard $(cat $dotest/orig-head)
|
git reset --hard $(cat "$dotest/orig-head")
|
||||||
rm -r "$dotest"
|
rm -r "$dotest"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
|
@ -4,7 +4,13 @@ test_description='git rebase --abort tests'
|
|||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
### Test that we handle space characters properly
|
||||||
|
work_dir="$(pwd)/test dir"
|
||||||
|
|
||||||
test_expect_success setup '
|
test_expect_success setup '
|
||||||
|
mkdir -p "$work_dir" &&
|
||||||
|
cd "$work_dir" &&
|
||||||
|
git init &&
|
||||||
echo a > a &&
|
echo a > a &&
|
||||||
git add a &&
|
git add a &&
|
||||||
git commit -m a &&
|
git commit -m a &&
|
||||||
@ -28,32 +34,35 @@ testrebase() {
|
|||||||
dotest=$2
|
dotest=$2
|
||||||
|
|
||||||
test_expect_success "rebase$type --abort" '
|
test_expect_success "rebase$type --abort" '
|
||||||
|
cd "$work_dir" &&
|
||||||
# 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 &&
|
||||||
test_must_fail git rebase'"$type"' master &&
|
test_must_fail git rebase$type master &&
|
||||||
test -d '$dotest' &&
|
test -d "$dotest" &&
|
||||||
git rebase --abort &&
|
git 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 ! -d '$dotest'
|
test ! -d "$dotest"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success "rebase$type --abort after --skip" '
|
test_expect_success "rebase$type --abort after --skip" '
|
||||||
|
cd "$work_dir" &&
|
||||||
# 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 &&
|
||||||
test_must_fail git rebase'"$type"' master &&
|
test_must_fail git rebase$type master &&
|
||||||
test -d '$dotest' &&
|
test -d "$dotest" &&
|
||||||
test_must_fail git rebase --skip &&
|
test_must_fail git rebase --skip &&
|
||||||
test $(git rev-parse HEAD) = $(git rev-parse master) &&
|
test $(git rev-parse HEAD) = $(git rev-parse master) &&
|
||||||
git-rebase --abort &&
|
git-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 ! -d '$dotest'
|
test ! -d "$dotest"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success "rebase$type --abort after --continue" '
|
test_expect_success "rebase$type --abort after --continue" '
|
||||||
|
cd "$work_dir" &&
|
||||||
# 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 &&
|
||||||
test_must_fail git rebase'"$type"' master &&
|
test_must_fail git rebase$type master &&
|
||||||
test -d '$dotest' &&
|
test -d "$dotest" &&
|
||||||
echo c > a &&
|
echo c > a &&
|
||||||
echo d >> a &&
|
echo d >> a &&
|
||||||
git add a &&
|
git add a &&
|
||||||
@ -61,7 +70,7 @@ testrebase() {
|
|||||||
test $(git rev-parse HEAD) != $(git rev-parse master) &&
|
test $(git rev-parse HEAD) != $(git rev-parse master) &&
|
||||||
git rebase --abort &&
|
git 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 ! -d '$dotest'
|
test ! -d "$dotest"
|
||||||
'
|
'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user