Also update t/t3407-rebase-abort.sh to exercise the bug
Signed-off-by: Bryan Donlan <bdonlan@fushizen.net>
---
git-rebase.sh | 2 +-
t/t3407-rebase-abort.sh | 55 +++++++++++++++++++++++++++-------------------
2 files changed, 33 insertions(+), 24 deletions(-)
diff --git a/git-rebase.sh b/git-rebase.sh
index 9b13b83..c43afe5 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -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
;;
diff --git a/t/t3407-rebase-abort.sh b/t/t3407-rebase-abort.sh
index 37944c3..396a354 100755
--- a/t/t3407-rebase-abort.sh
+++ b/t/t3407-rebase-abort.sh
@@ -4,7 +4,13 @@ test_description='git rebase --abort tests'
. ./test-lib.sh
+### Test that we handle strange 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 &&
@@ -27,42 +33,45 @@ testrebase() {
type=$1
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
- 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 \$(git rev-parse to-rebase) = \$(git rev-parse pre-rebase) &&
+ 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
- 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) &&
+ 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 \$(git rev-parse to-rebase) = \$(git rev-parse pre-rebase) &&
+ 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
- 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 &&
test_must_fail git rebase --continue &&
- test $(git rev-parse HEAD) != $(git rev-parse master) &&
+ 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 \$(git rev-parse to-rebase) = \$(git rev-parse pre-rebase) &&
+ test ! -d \"\$dotest\"
+ "
}
testrebase "" .dotest
--
1.5.5.33.gc0a39.dirty
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html