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:
Bryan Donlan 2008-05-04 01:37:51 -04:00 committed by Junio C Hamano
parent c697ad143b
commit 97b88dd58c
2 changed files with 22 additions and 13 deletions

View file

@ -214,7 +214,7 @@ do
else
die "No rebase in progress?"
fi
git reset --hard $(cat $dotest/orig-head)
git reset --hard $(cat "$dotest/orig-head")
rm -r "$dotest"
exit
;;

View file

@ -4,7 +4,13 @@ test_description='git rebase --abort tests'
. ./test-lib.sh
### Test that we handle space characters properly
work_dir="$(pwd)/test dir"
test_expect_success setup '
mkdir -p "$work_dir" &&
cd "$work_dir" &&
git init &&
echo a > a &&
git add a &&
git commit -m a &&
@ -28,32 +34,35 @@ testrebase() {
dotest=$2
test_expect_success "rebase$type --abort" '
cd "$work_dir" &&
# Clean up the state from the previous one
git reset --hard pre-rebase
test_must_fail git rebase'"$type"' master &&
test -d '$dotest' &&
git reset --hard pre-rebase &&
test_must_fail git rebase$type master &&
test -d "$dotest" &&
git rebase --abort &&
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" '
cd "$work_dir" &&
# Clean up the state from the previous one
git reset --hard pre-rebase
test_must_fail git rebase'"$type"' master &&
test -d '$dotest' &&
git reset --hard pre-rebase &&
test_must_fail git rebase$type master &&
test -d "$dotest" &&
test_must_fail git rebase --skip &&
test $(git rev-parse HEAD) = $(git rev-parse master) &&
git-rebase --abort &&
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" '
cd "$work_dir" &&
# Clean up the state from the previous one
git reset --hard pre-rebase
test_must_fail git rebase'"$type"' master &&
test -d '$dotest' &&
git reset --hard pre-rebase &&
test_must_fail git rebase$type master &&
test -d "$dotest" &&
echo c > a &&
echo d >> a &&
git add a &&
@ -61,7 +70,7 @@ testrebase() {
test $(git rev-parse HEAD) != $(git rev-parse master) &&
git rebase --abort &&
test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
test ! -d '$dotest'
test ! -d "$dotest"
'
}