{"thread":{"id":"10239","subject":"[PATCH] Fixing path quoting issues","startedAt":"2007-10-10T21:13:37Z","lastAt":"2007-10-24T13:07:23Z","messageCount":38,"participants":["Jonathan del Strother","Johannes Sixt","David Kastrup","Johannes Schindelin","Wincent Colaiuta","Andreas Ericsson"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"55413","messageId":"11920508172434-git-send-email-jon.delStrother@bestbefore.tv","threadId":"10239","inReplyTo":null,"subject":"[PATCH] Fixing path quoting issues","fromName":"Jonathan del Strother","fromEmail":"jon.delstrother@bestbefore.tv","sentAt":"2007-10-10T21:13:37Z","receivedAt":"2007-10-10T21:13:37Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"git-rebase and a number of tests didn't properly quote paths, leading to problems when run from a path with a space in.\n\nSigned-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n---\n git-rebase.sh                            |   26 +++++-----\n t/t1020-subdirectory.sh                  |   22 ++++----\n t/t3050-subprojects-fetch.sh             |    2 +-\n t/t3404-rebase-interactive.sh            |    2 +-\n t/t5500-fetch-pack.sh                    |    2 +-\n t/t5700-clone-reference.sh               |    2 +-\n t/t7003-filter-branch.sh                 |    2 +-\n t/t7501-commit.sh                        |   74 +++++++++++++++---------------\n t/t9100-git-svn-basic.sh                 |   18 ++++----\n t/t9101-git-svn-props.sh                 |    6 +-\n t/t9102-git-svn-deep-rmdir.sh            |    6 +-\n t/t9104-git-svn-follow-parent.sh         |   50 ++++++++++----------\n t/t9105-git-svn-commit-diff.sh           |   10 ++--\n t/t9106-git-svn-commit-diff-clobber.sh   |   14 +++---\n t/t9107-git-svn-migrate.sh               |   40 ++++++++--------\n t/t9108-git-svn-glob.sh                  |    8 ++--\n t/t9110-git-svn-use-svm-props.sh         |    8 ++--\n t/t9111-git-svn-use-svnsync-props.sh     |    8 ++--\n t/t9112-git-svn-md5less-file.sh          |    4 +-\n t/t9113-git-svn-dcommit-new-file.sh      |    6 +-\n t/t9114-git-svn-dcommit-merge.sh         |    4 +-\n t/t9115-git-svn-dcommit-funky-renames.sh |    4 +-\n t/t9116-git-svn-log.sh                   |    4 +-\n t/test-lib.sh                            |    2 +-\n 24 files changed, 162 insertions(+), 162 deletions(-)\n\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex 1583402..b48397e 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -59,7 +59,7 @@ continue_merge () {\n \t\tdie \"$RESOLVEMSG\"\n \tfi\n \n-\tcmt=`cat $dotest/current`\n+\tcmt=`cat \"$dotest/current\"`\n \tif ! git diff-index --quiet HEAD\n \tthen\n \t\tif ! git-commit -C \"$cmt\"\n@@ -84,14 +84,14 @@ continue_merge () {\n }\n \n call_merge () {\n-\tcmt=\"$(cat $dotest/cmt.$1)\"\n+\tcmt=\"$(cat \"$dotest/cmt.$1\")\"\n \techo \"$cmt\" > \"$dotest/current\"\n \thd=$(git rev-parse --verify HEAD)\n \tcmt_name=$(git symbolic-ref HEAD)\n-\tmsgnum=$(cat $dotest/msgnum)\n-\tend=$(cat $dotest/end)\n+\tmsgnum=$(cat \"$dotest/msgnum\")\n+\tend=$(cat \"$dotest/end\")\n \teval GITHEAD_$cmt='\"${cmt_name##refs/heads/}~$(($end - $msgnum))\"'\n-\teval GITHEAD_$hd='\"$(cat $dotest/onto_name)\"'\n+\teval GITHEAD_$hd='\"$(cat \\\"$dotest/onto_name\\\")\"'\n \texport GITHEAD_$cmt GITHEAD_$hd\n \tgit-merge-$strategy \"$cmt^\" -- \"$hd\" \"$cmt\"\n \trv=$?\n@@ -140,10 +140,10 @@ do\n \t\t}\n \t\tif test -d \"$dotest\"\n \t\tthen\n-\t\t\tprev_head=\"`cat $dotest/prev_head`\"\n-\t\t\tend=\"`cat $dotest/end`\"\n-\t\t\tmsgnum=\"`cat $dotest/msgnum`\"\n-\t\t\tonto=\"`cat $dotest/onto`\"\n+\t\t\tprev_head=\"`cat \\\"$dotest/prev_head\\\"`\"\n+\t\t\tend=\"`cat \\\"$dotest/end\\\"`\"\n+\t\t\tmsgnum=\"`cat \\\"$dotest/msgnum\\\"`\"\n+\t\t\tonto=\"`cat \\\"$dotest/onto\\\"`\"\n \t\t\tcontinue_merge\n \t\t\twhile test \"$msgnum\" -le \"$end\"\n \t\t\tdo\n@@ -160,11 +160,11 @@ do\n \t\tif test -d \"$dotest\"\n \t\tthen\n \t\t\tgit rerere clear\n-\t\t\tprev_head=\"`cat $dotest/prev_head`\"\n-\t\t\tend=\"`cat $dotest/end`\"\n-\t\t\tmsgnum=\"`cat $dotest/msgnum`\"\n+\t\t\tprev_head=\"`cat \\\"$dotest/prev_head\\\"`\"\n+\t\t\tend=\"`cat \\\"$dotest/end\\\"`\"\n+\t\t\tmsgnum=\"`cat \\\"$dotest/msgnum\\\"`\"\n \t\t\tmsgnum=$(($msgnum + 1))\n-\t\t\tonto=\"`cat $dotest/onto`\"\n+\t\t\tonto=\"`cat \\\"$dotest/onto\\\"`\"\n \t\t\twhile test \"$msgnum\" -le \"$end\"\n \t\t\tdo\n \t\t\t\tcall_merge \"$msgnum\"\ndiff --git a/t/t1020-subdirectory.sh b/t/t1020-subdirectory.sh\nindex b9cef34..5ed7fa4 100755\n--- a/t/t1020-subdirectory.sh\n+++ b/t/t1020-subdirectory.sh\n@@ -21,7 +21,7 @@ LF='\n '\n \n test_expect_success 'update-index and ls-files' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit update-index --add one &&\n \tcase \"`git ls-files`\" in\n \tone) echo ok one ;;\n@@ -41,7 +41,7 @@ test_expect_success 'update-index and ls-files' '\n '\n \n test_expect_success 'cat-file' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \ttwo=`git ls-files -s dir/two` &&\n \ttwo=`expr \"$two\" : \"[0-7]* \\\\([0-9a-f]*\\\\)\"` &&\n \techo \"$two\" &&\n@@ -54,7 +54,7 @@ test_expect_success 'cat-file' '\n rm -f actual dir/actual\n \n test_expect_success 'diff-files' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \techo a >>one &&\n \techo d >>dir/two &&\n \tcase \"`git diff-files --name-only`\" in\n@@ -74,7 +74,7 @@ test_expect_success 'diff-files' '\n '\n \n test_expect_success 'write-tree' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \ttop=`git write-tree` &&\n \techo $top &&\n \tcd dir &&\n@@ -84,7 +84,7 @@ test_expect_success 'write-tree' '\n '\n \n test_expect_success 'checkout-index' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit checkout-index -f -u one &&\n \tcmp one original.one &&\n \tcd dir &&\n@@ -93,7 +93,7 @@ test_expect_success 'checkout-index' '\n '\n \n test_expect_success 'read-tree' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \trm -f one dir/two &&\n \ttree=`git write-tree` &&\n \tgit read-tree --reset -u \"$tree\" &&\n@@ -107,27 +107,27 @@ test_expect_success 'read-tree' '\n '\n \n test_expect_success 'no file/rev ambiguity check inside .git' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit commit -a -m 1 &&\n-\tcd $HERE/.git &&\n+\tcd \"$HERE/.git\" &&\n \tgit show -s HEAD\n '\n \n test_expect_success 'no file/rev ambiguity check inside a bare repo' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit clone -s --bare .git foo.git &&\n \tcd foo.git && GIT_DIR=. git show -s HEAD\n '\n \n # This still does not work as it should...\n : test_expect_success 'no file/rev ambiguity check inside a bare repo' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit clone -s --bare .git foo.git &&\n \tcd foo.git && git show -s HEAD\n '\n \n test_expect_success 'detection should not be fooled by a symlink' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \trm -fr foo.git &&\n \tgit clone -s .git another &&\n \tln -s another yetanother &&\ndiff --git a/t/t3050-subprojects-fetch.sh b/t/t3050-subprojects-fetch.sh\nindex 34f26a8..4b74cc6 100755\n--- a/t/t3050-subprojects-fetch.sh\n+++ b/t/t3050-subprojects-fetch.sh\n@@ -20,7 +20,7 @@ test_expect_success setup '\n '\n \n test_expect_success clone '\n-\tgit clone file://`pwd`/.git cloned &&\n+\tgit clone \"file://`pwd`/.git\" cloned &&\n \t(git rev-parse HEAD; git ls-files -s) >expected &&\n \t(\n \t\tcd cloned &&\ndiff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh\nindex 1113904..f321787 100755\n--- a/t/t3404-rebase-interactive.sh\n+++ b/t/t3404-rebase-interactive.sh\n@@ -92,7 +92,7 @@ done\n EOF\n \n chmod a+x fake-editor.sh\n-VISUAL=\"$(pwd)/fake-editor.sh\"\n+VISUAL=\"'$(pwd)/fake-editor.sh'\"\n export VISUAL\n \n test_expect_success 'no changes are a nop' '\ndiff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh\nindex 7b6798d..5489ffe 100755\n--- a/t/t5500-fetch-pack.sh\n+++ b/t/t5500-fetch-pack.sh\n@@ -129,7 +129,7 @@ pull_to_client 2nd \"B\" $((64*3))\n \n pull_to_client 3rd \"A\" $((1*3)) # old fails\n \n-test_expect_success \"clone shallow\" \"git-clone --depth 2 file://`pwd`/. shallow\"\n+test_expect_success \"clone shallow\" \"git-clone --depth 2 \\\"file://`pwd`/.\\\" shallow\"\n \n (cd shallow; git count-objects -v) > count.shallow\n \ndiff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh\nindex 4e93aaa..8bb34f9 100755\n--- a/t/t5700-clone-reference.sh\n+++ b/t/t5700-clone-reference.sh\n@@ -51,7 +51,7 @@ diff expected current'\n cd \"$base_dir\"\n \n test_expect_success 'cloning with reference (no -l -s)' \\\n-'git clone --reference B file://`pwd`/A D'\n+'git clone --reference B \"file://`pwd`/A\" D'\n \n cd \"$base_dir\"\n \ndiff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh\nindex e935b20..1ab5392 100755\n--- a/t/t7003-filter-branch.sh\n+++ b/t/t7003-filter-branch.sh\n@@ -107,7 +107,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '\n \t\t \"git ls-files -s | sed \\\"s-\\\\t-&newsubdir/-\\\" |\n \t          GIT_INDEX_FILE=\\$GIT_INDEX_FILE.new \\\n \t\t\tgit update-index --index-info &&\n-\t\t  mv \\$GIT_INDEX_FILE.new \\$GIT_INDEX_FILE\" directorymoved &&\n+\t\t  mv \\\"\\$GIT_INDEX_FILE.new\\\" \\\"\\$GIT_INDEX_FILE\\\"\" directorymoved &&\n \ttest -z \"$(git diff HEAD directorymoved:newsubdir)\"'\n \n test_expect_success 'stops when msg filter fails' '\ndiff --git a/t/t7501-commit.sh b/t/t7501-commit.sh\nindex b151b51..f3d0ab9 100644\n--- a/t/t7501-commit.sh\n+++ b/t/t7501-commit.sh\n@@ -69,7 +69,7 @@ test_expect_success \\\n \n cat >editor <<\\EOF\n #!/bin/sh\n-sed -i -e \"s/a file/an amend commit/g\" $1\n+sed -i -e \"s/a file/an amend commit/g\" \"$1\"\n EOF\n chmod 755 editor\n \n@@ -80,40 +80,40 @@ test_expect_success \\\n test_expect_failure \\\n \t\"passing -m and -F\" \\\n \t\"echo 'enough with the bongos' >file && \\\n-\t git-commit -F msg -m amending .\"\n+\tgit-commit -F msg -m amending .\"\n \n test_expect_success \\\n-\t\"using message from other commit\" \\\n-\t\"git-commit -C HEAD^ .\"\n+\t \"using message from other commit\" \\\n+\t \"git-commit -C HEAD^ .\"\n \n cat >editor <<\\EOF\n #!/bin/sh\n-sed -i -e \"s/amend/older/g\" $1\n+sed -i -e \"s/amend/older/g\" \"$1\"\n EOF\n chmod 755 editor\n \n test_expect_success \\\n-\t\"editing message from other commit\" \\\n-\t\"echo 'hula hula' >file && \\\n-\t VISUAL=./editor git-commit -c HEAD^ -a\"\n+\t \"editing message from other commit\" \\\n+\t \"echo 'hula hula' >file && \\\n+\t  VISUAL=./editor git-commit -c HEAD^ -a\"\n \n test_expect_success \\\n-\t\"message from stdin\" \\\n-\t\"echo 'silly new contents' >file && \\\n-\t echo commit message from stdin | git-commit -F - -a\"\n+\t \"message from stdin\" \\\n+\t \"echo 'silly new contents' >file && \\\n+\t  echo commit message from stdin | git-commit -F - -a\"\n \n test_expect_success \\\n-\t\"overriding author from command line\" \\\n-\t\"echo 'gak' >file && \\\n-\t git-commit -m 'author' --author 'Rubber Duck <rduck@convoy.org>' -a\"\n+\t \"overriding author from command line\" \\\n+\t \"echo 'gak' >file && \\\n+\t  git-commit -m 'author' --author 'Rubber Duck <rduck@convoy.org>' -a\"\n \n test_expect_success \\\n-\t\"interactive add\" \\\n-\t\"echo 7 | git-commit --interactive | grep 'What now'\"\n+\t \"interactive add\" \\\n+\t \"echo 7 | git-commit --interactive | grep 'What now'\"\n \n test_expect_success \\\n-\t\"showing committed revisions\" \\\n-\t\"git-rev-list HEAD >current\"\n+\t \"showing committed revisions\" \\\n+\t \"git-rev-list HEAD >current\"\n \n # We could just check the head sha1, but checking each commit makes it\n # easier to isolate bugs.\n@@ -128,38 +128,38 @@ d381ac431806e53f3dd7ac2f1ae0534f36d738b9\n EOF\n \n test_expect_success \\\n-    'validate git-rev-list output.' \\\n-    'diff current expected'\n+\t'validate git-rev-list output.' \\\n+\t'diff current expected'\n \n test_expect_success 'partial commit that involves removal (1)' '\n \n-\tgit rm --cached file &&\n-\tmv file elif &&\n-\tgit add elif &&\n-\tgit commit -m \"Partial: add elif\" elif &&\n-\tgit diff-tree --name-status HEAD^ HEAD >current &&\n-\techo \"A\telif\" >expected &&\n-\tdiff expected current\n+\t git rm --cached file &&\n+\t mv file elif &&\n+\t git add elif &&\n+\t git commit -m \"Partial: add elif\" elif &&\n+\t git diff-tree --name-status HEAD^ HEAD >current &&\n+\t echo \"A elif\" >expected &&\n+\t diff -b expected current\n \n '\n \n test_expect_success 'partial commit that involves removal (2)' '\n \n-\tgit commit -m \"Partial: remove file\" file &&\n-\tgit diff-tree --name-status HEAD^ HEAD >current &&\n-\techo \"D\tfile\" >expected &&\n-\tdiff expected current\n+\t git commit -m \"Partial: remove file\" file &&\n+\t git diff-tree --name-status HEAD^ HEAD >current &&\n+\t echo \"D file\" >expected &&\n+\t diff -b expected current\n \n '\n \n test_expect_success 'partial commit that involves removal (3)' '\n \n-\tgit rm --cached elif &&\n-\techo elif >elif &&\n-\tgit commit -m \"Partial: modify elif\" elif &&\n-\tgit diff-tree --name-status HEAD^ HEAD >current &&\n-\techo \"M\telif\" >expected &&\n-\tdiff expected current\n+\t git rm --cached elif &&\n+\t echo elif >elif &&\n+\t git commit -m \"Partial: modify elif\" elif &&\n+\t git diff-tree --name-status HEAD^ HEAD >current &&\n+\t echo \"M elif\" >expected &&\n+\t diff -b expected current\n \n '\n \ndiff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh\nindex 614cf50..c3585da 100755\n--- a/t/t9100-git-svn-basic.sh\n+++ b/t/t9100-git-svn-basic.sh\n@@ -31,16 +31,16 @@ test_expect_success \\\n \techo 'zzz' > bar/zzz &&\n \techo '#!/bin/sh' > exec.sh &&\n \tchmod +x exec.sh &&\n-\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n+\tsvn import -m 'import for git-svn' . '$svnrepo' >/dev/null &&\n \tcd .. &&\n \trm -rf import &&\n-\tgit-svn init $svnrepo\"\n+\tgit-svn init '$svnrepo'\"\n \n test_expect_success \\\n     'import an SVN revision into git' \\\n     'git-svn fetch'\n \n-test_expect_success \"checkout from svn\" \"svn co $svnrepo '$SVN_TREE'\"\n+test_expect_success \"checkout from svn\" \"svn co '$svnrepo' '$SVN_TREE'\"\n \n name='try a deep --rmdir with a commit'\n test_expect_success \"$name\" \"\n@@ -169,7 +169,7 @@ test_expect_success \"$name\" \"\n \tsvn up '$SVN_TREE' &&\n \ttest -f '$SVN_TREE'/exec-2.sh &&\n \ttest ! -L '$SVN_TREE'/exec-2.sh &&\n-\tgit diff help $SVN_TREE/exec-2.sh\"\n+\tgit diff help '$SVN_TREE/exec-2.sh'\"\n \n if test \"$have_utf8\" = t\n then\n@@ -190,7 +190,7 @@ name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'\n GIT_SVN_ID=alt\n export GIT_SVN_ID\n test_expect_success \"$name\" \\\n-    \"git-svn init $svnrepo && git-svn fetch &&\n+    \"git-svn init '$svnrepo' && git-svn fetch &&\n      git rev-list --pretty=raw remotes/git-svn | grep ^tree | uniq > a &&\n      git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&\n      git diff a b\"\n@@ -220,16 +220,16 @@ test_expect_failure 'exit if remote refs are ambigious' \"\n         \"\n \n test_expect_failure 'exit if init-ing a would clobber a URL' \"\n-        svnadmin create ${PWD}/svnrepo2 &&\n-        svn mkdir -m 'mkdir bar' ${svnrepo}2/bar &&\n+        svnadmin create '${PWD}/svnrepo2' &&\n+        svn mkdir -m 'mkdir bar' '${svnrepo}2/bar' &&\n         git config --unset svn-remote.svn.fetch \\\n                                 '^bar:refs/remotes/git-svn$' &&\n-        git-svn init ${svnrepo}2/bar\n+        git-svn init '${svnrepo}2/bar'\n         \"\n \n test_expect_success \\\n   'init allows us to connect to another directory in the same repo' \"\n-        git-svn init --minimize-url -i bar $svnrepo/bar &&\n+        git-svn init --minimize-url -i bar '$svnrepo/bar' &&\n         git config --get svn-remote.svn.fetch \\\n                               '^bar:refs/remotes/bar$' &&\n         git config --get svn-remote.svn.fetch \\\ndiff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh\nindex 5aac644..a1c85e0 100755\n--- a/t/t9101-git-svn-props.sh\n+++ b/t/t9101-git-svn-props.sh\n@@ -52,7 +52,7 @@ EOF\n cd ..\n \n rm -rf import\n-test_expect_success 'checkout working copy from svn' \"svn co $svnrepo test_wc\"\n+test_expect_success 'checkout working copy from svn' \"svn co '$svnrepo' test_wc\"\n test_expect_success 'setup some commits to svn' \\\n \t'cd test_wc &&\n \t\techo Greetings >> kw.c &&\n@@ -66,7 +66,7 @@ test_expect_success 'setup some commits to svn' \\\n \t\tsvn commit -m \"Propset Id\" &&\n \tcd ..'\n \n-test_expect_success 'initialize git-svn' \"git-svn init $svnrepo\"\n+test_expect_success 'initialize git-svn' \"git-svn init '$svnrepo'\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n \n name='test svn:keywords ignoring'\n@@ -92,7 +92,7 @@ test_expect_success \"propset CR on crlf files\" \\\n test_expect_success 'fetch and pull latest from svn and checkout a new wc' \\\n \t\"git-svn fetch &&\n \t git pull . remotes/git-svn &&\n-\t svn co $svnrepo new_wc\"\n+\t svn co '$svnrepo' new_wc\"\n \n for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf\n do\ndiff --git a/t/t9102-git-svn-deep-rmdir.sh b/t/t9102-git-svn-deep-rmdir.sh\nindex 4e08083..99c8840 100755\n--- a/t/t9102-git-svn-deep-rmdir.sh\n+++ b/t/t9102-git-svn-deep-rmdir.sh\n@@ -9,12 +9,12 @@ test_expect_success 'initialize repo' \"\n \tmkdir -p deeply/nested/directory/number/2 &&\n \techo foo > deeply/nested/directory/number/1/file &&\n \techo foo > deeply/nested/directory/number/2/another &&\n-\tsvn import -m 'import for git-svn' . $svnrepo &&\n+\tsvn import -m 'import for git-svn' . '$svnrepo' &&\n \tcd ..\n \t\"\n \n test_expect_success 'mirror via git-svn' \"\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init '$svnrepo' &&\n \tgit-svn fetch &&\n \tgit checkout -f -b test-rmdir remotes/git-svn\n \t\"\n@@ -23,7 +23,7 @@ test_expect_success 'Try a commit on rmdir' \"\n \tgit rm -f deeply/nested/directory/number/2/another &&\n \tgit commit -a -m 'remove another' &&\n \tgit-svn set-tree --rmdir HEAD &&\n-\tsvn ls -R $svnrepo | grep ^deeply/nested/directory/number/1\n+\tsvn ls -R '$svnrepo' | grep ^deeply/nested/directory/number/1\n \t\"\n \n \ndiff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh\nindex 7ba7630..aa2bfe2 100755\n--- a/t/t9104-git-svn-follow-parent.sh\n+++ b/t/t9104-git-svn-follow-parent.sh\n@@ -11,9 +11,9 @@ test_expect_success 'initialize repo' \"\n \tcd import &&\n \tmkdir -p trunk &&\n \techo hello > trunk/readme &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . '$svnrepo' &&\n \tcd .. &&\n-\tsvn co $svnrepo wc &&\n+\tsvn co '$svnrepo' wc &&\n \tcd wc &&\n \techo world >> trunk/readme &&\n \tpoke trunk/readme &&\n@@ -27,7 +27,7 @@ test_expect_success 'initialize repo' \"\n \t\"\n \n test_expect_success 'init and fetch a moved directory' \"\n-\tgit-svn init --minimize-url -i thunk $svnrepo/thunk &&\n+\tgit-svn init --minimize-url -i thunk '$svnrepo/thunk' &&\n \tgit-svn fetch -i thunk &&\n \ttest \\\"\\`git rev-parse --verify refs/remotes/thunk@2\\`\\\" \\\n            = \\\"\\`git rev-parse --verify refs/remotes/thunk~1\\`\\\" &&\n@@ -38,7 +38,7 @@ test_expect_success 'init and fetch a moved directory' \"\n \t\"\n \n test_expect_success 'init and fetch from one svn-remote' \"\n-        git config svn-remote.svn.url $svnrepo &&\n+        git config svn-remote.svn.url '$svnrepo' &&\n         git config --add svn-remote.svn.fetch \\\n           trunk:refs/remotes/svn/trunk &&\n         git config --add svn-remote.svn.fetch \\\n@@ -52,9 +52,9 @@ test_expect_success 'init and fetch from one svn-remote' \"\n \n test_expect_success 'follow deleted parent' \"\n         (svn cp -m 'resurrecting trunk as junk' \\\n-               $svnrepo/trunk@2 $svnrepo/junk ||\n+               '$svnrepo/trunk@2' '$svnrepo'/junk ||\n          svn cp -m 'resurrecting trunk as junk' \\\n-               -r2 $svnrepo/trunk $svnrepo/junk) &&\n+               -r2 '$svnrepo/trunk' '$svnrepo/junk') &&\n         git config --add svn-remote.svn.fetch \\\n           junk:refs/remotes/svn/junk &&\n         git-svn fetch -i svn/thunk &&\n@@ -67,10 +67,10 @@ test_expect_success 'follow deleted parent' \"\n test_expect_success 'follow larger parent' \"\n         mkdir -p import/trunk/thunk/bump/thud &&\n         echo hi > import/trunk/thunk/bump/thud/file &&\n-        svn import -m 'import a larger parent' import $svnrepo/larger-parent &&\n-        svn cp -m 'hi' $svnrepo/larger-parent $svnrepo/another-larger &&\n+        svn import -m 'import a larger parent' import '$svnrepo/larger-parent' &&\n+        svn cp -m 'hi' '$svnrepo/larger-parent' '$svnrepo/another-larger' &&\n         git-svn init --minimize-url -i larger \\\n-          $svnrepo/another-larger/trunk/thunk/bump/thud &&\n+          '$svnrepo/another-larger/trunk/thunk/bump/thud' &&\n         git-svn fetch -i larger &&\n         git rev-parse --verify refs/remotes/larger &&\n         git rev-parse --verify \\\n@@ -83,23 +83,23 @@ test_expect_success 'follow larger parent' \"\n         \"\n \n test_expect_success 'follow higher-level parent' \"\n-        svn mkdir -m 'follow higher-level parent' $svnrepo/blob &&\n-        svn co $svnrepo/blob blob &&\n+        svn mkdir -m 'follow higher-level parent' '$svnrepo/blob' &&\n+        svn co '$svnrepo/blob' blob &&\n         cd blob &&\n                 echo hi > hi &&\n                 svn add hi &&\n                 svn commit -m 'hihi' &&\n                 cd ..\n-        svn mkdir -m 'new glob at top level' $svnrepo/glob &&\n-        svn mv -m 'move blob down a level' $svnrepo/blob $svnrepo/glob/blob &&\n-        git-svn init --minimize-url -i blob $svnrepo/glob/blob &&\n+        svn mkdir -m 'new glob at top level' '$svnrepo/glob' &&\n+        svn mv -m 'move blob down a level' '$svnrepo/blob' '$svnrepo/glob/blob' &&\n+        git-svn init --minimize-url -i blob '$svnrepo/glob/blob' &&\n         git-svn fetch -i blob\n         \"\n \n test_expect_success 'follow deleted directory' \"\n-\tsvn mv -m 'bye!' $svnrepo/glob/blob/hi $svnrepo/glob/blob/bye &&\n-\tsvn rm -m 'remove glob' $svnrepo/glob &&\n-\tgit-svn init --minimize-url -i glob $svnrepo/glob &&\n+\tsvn mv -m 'bye!' '$svnrepo/glob/blob/hi' '$svnrepo/glob/blob/bye' &&\n+\tsvn rm -m 'remove glob' '$svnrepo/glob' &&\n+\tgit-svn init --minimize-url -i glob '$svnrepo/glob' &&\n \tgit-svn fetch -i glob &&\n \ttest \\\"\\`git cat-file blob refs/remotes/glob:blob/bye\\`\\\" = hi &&\n \ttest \\\"\\`git ls-tree refs/remotes/glob | wc -l \\`\\\" -eq 1\n@@ -118,9 +118,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  echo 'bad delete test 2' > \\\n \t   import/trunk/subversion/bindings/swig/perl/another-larger &&\n \tcd import &&\n-\t  svn import -m 'r9270 test' . $svnrepo/r9270 &&\n+\t  svn import -m 'r9270 test' . '$svnrepo/r9270' &&\n \tcd .. &&\n-\tsvn co $svnrepo/r9270/trunk/subversion/bindings/swig/perl r9270 &&\n+\tsvn co '$svnrepo/r9270/trunk/subversion/bindings/swig/perl' r9270 &&\n \tcd r9270 &&\n \t  svn mkdir native &&\n \t  svn mv t native/t &&\n@@ -130,7 +130,7 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  svn commit -m 'reorg test' &&\n \tcd .. &&\n \tgit-svn init --minimize-url -i r9270-t \\\n-\t  $svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t &&\n+\t  '$svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t' &&\n \tgit-svn fetch -i r9270-t &&\n \ttest \\`git rev-list r9270-t | wc -l\\` -eq 2 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t~1\\`\\\" = \\\n@@ -138,9 +138,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t\"\n \n test_expect_success \"track initial change if it was only made to parent\" \"\n-\tsvn cp -m 'wheee!' $svnrepo/r9270/trunk $svnrepo/r9270/drunk &&\n+\tsvn cp -m 'wheee!' '$svnrepo/r9270/trunk' '$svnrepo/r9270/drunk' &&\n \tgit-svn init --minimize-url -i r9270-d \\\n-\t  $svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t &&\n+\t  '$svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t' &&\n \tgit-svn fetch -i r9270-d &&\n \ttest \\`git rev-list r9270-d | wc -l\\` -eq 3 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t\\`\\\" = \\\n@@ -150,7 +150,7 @@ test_expect_success \"track initial change if it was only made to parent\" \"\n \t\"\n \n test_expect_success \"track multi-parent paths\" \"\n-\tsvn cp -m 'resurrect /glob' $svnrepo/r9270 $svnrepo/glob &&\n+\tsvn cp -m 'resurrect /glob' '$svnrepo/r9270' '$svnrepo/glob' &&\n \tgit-svn multi-fetch &&\n \ttest \\`git cat-file commit refs/remotes/glob | \\\n \t       grep '^parent ' | wc -l\\` -eq 2\n@@ -161,8 +161,8 @@ test_expect_success \"multi-fetch continues to work\" \"\n \t\"\n \n test_expect_success \"multi-fetch works off a 'clean' repository\" \"\n-\trm -r $GIT_DIR/svn $GIT_DIR/refs/remotes $GIT_DIR/logs &&\n-\tmkdir $GIT_DIR/svn &&\n+\trm -r '$GIT_DIR/svn' '$GIT_DIR/refs/remotes' '$GIT_DIR/logs' &&\n+\tmkdir '$GIT_DIR/svn' &&\n \tgit-svn multi-fetch\n \t\"\n \ndiff --git a/t/t9105-git-svn-commit-diff.sh b/t/t9105-git-svn-commit-diff.sh\nindex 318e172..2e1eb75 100755\n--- a/t/t9105-git-svn-commit-diff.sh\n+++ b/t/t9105-git-svn-commit-diff.sh\n@@ -8,7 +8,7 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo hello > readme &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . '$svnrepo' &&\n \tcd .. &&\n \techo hello > readme &&\n \tgit update-index --add readme &&\n@@ -27,16 +27,16 @@ prev=`git rev-parse --verify HEAD^1`\n test_expect_success 'test the commit-diff command' \"\n \ttest -n '$prev' && test -n '$head' &&\n \tgit-svn commit-diff -r1 '$prev' '$head' '$svnrepo' &&\n-\tsvn co $svnrepo wc &&\n+\tsvn co '$svnrepo' wc &&\n \tcmp readme wc/readme\n \t\"\n \n test_expect_success 'commit-diff to a sub-directory (with git-svn config)' \"\n-\tsvn import -m 'sub-directory' import $svnrepo/subdir &&\n-\tgit-svn init --minimize-url $svnrepo/subdir &&\n+\tsvn import -m 'sub-directory' import '$svnrepo/subdir' &&\n+\tgit-svn init --minimize-url '$svnrepo/subdir' &&\n \tgit-svn fetch &&\n \tgit-svn commit-diff -r3 '$prev' '$head' &&\n-\tsvn cat $svnrepo/subdir/readme > readme.2 &&\n+\tsvn cat '$svnrepo/subdir/readme' > readme.2 &&\n \tcmp readme readme.2\n \t\"\n \ndiff --git a/t/t9106-git-svn-commit-diff-clobber.sh b/t/t9106-git-svn-commit-diff-clobber.sh\nindex 79b7968..bb42339 100755\n--- a/t/t9106-git-svn-commit-diff-clobber.sh\n+++ b/t/t9106-git-svn-commit-diff-clobber.sh\n@@ -8,14 +8,14 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo initial > file &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . '$svnrepo' &&\n \tcd .. &&\n \techo initial > file &&\n \tgit update-index --add file &&\n \tgit commit -a -m 'initial'\n \t\"\n test_expect_success 'commit change from svn side' \"\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co '$svnrepo' t.svn &&\n \tcd t.svn &&\n \techo second line from svn >> file &&\n \tpoke file &&\n@@ -27,7 +27,7 @@ test_expect_success 'commit change from svn side' \"\n test_expect_failure 'commit conflicting change from git' \"\n \techo second line from git >> file &&\n \tgit commit -a -m 'second line from git' &&\n-\tgit-svn commit-diff -r1 HEAD~1 HEAD $svnrepo\n+\tgit-svn commit-diff -r1 HEAD~1 HEAD '$svnrepo'\n \t\" || true\n \n test_expect_success 'commit complementing change from git' \"\n@@ -36,14 +36,14 @@ test_expect_success 'commit complementing change from git' \"\n \tgit commit -a -m 'second line from svn' &&\n \techo third line from git >> file &&\n \tgit commit -a -m 'third line from git' &&\n-\tgit-svn commit-diff -r2 HEAD~1 HEAD $svnrepo\n+\tgit-svn commit-diff -r2 HEAD~1 HEAD '$svnrepo'\n \t\"\n \n test_expect_failure 'dcommit fails to commit because of conflict' \"\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init '$svnrepo' &&\n \tgit-svn fetch &&\n \tgit reset --hard refs/remotes/git-svn &&\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co '$svnrepo' t.svn &&\n \tcd t.svn &&\n \techo fourth line from svn >> file &&\n \tpoke file &&\n@@ -67,7 +67,7 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' \"\n \t\"\n \n test_expect_success 'commit another change from svn side' \"\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co '$svnrepo' t.svn &&\n \tcd t.svn &&\n \t\techo third line from svn >> file &&\n \t\tpoke file &&\ndiff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh\nindex 67fdf70..90bf786 100755\n--- a/t/t9107-git-svn-migrate.sh\n+++ b/t/t9107-git-svn-migrate.sh\n@@ -4,7 +4,7 @@ test_description='git-svn metadata migrations from previous versions'\n . ./lib-git-svn.sh\n \n test_expect_success 'setup old-looking metadata' \"\n-\tcp $GIT_DIR/config $GIT_DIR/config-old-git-svn &&\n+\tcp '$GIT_DIR/config' '$GIT_DIR/config-old-git-svn' &&\n \tmkdir import &&\n \tcd import &&\n \t\tfor i in trunk branches/a branches/b \\\n@@ -12,13 +12,13 @@ test_expect_success 'setup old-looking metadata' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . $svnrepo\n+\t\tsvn import -m test . '$svnrepo'\n \t\tcd .. &&\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init '$svnrepo' &&\n \tgit-svn fetch &&\n-\tmv $GIT_DIR/svn/* $GIT_DIR/ &&\n-\tmv $GIT_DIR/svn/.metadata $GIT_DIR/ &&\n-\trmdir $GIT_DIR/svn &&\n+\tmv '$GIT_DIR'/svn/* '$GIT_DIR/' &&\n+\tmv '$GIT_DIR/svn/.metadata' '$GIT_DIR/' &&\n+\trmdir '$GIT_DIR/svn' &&\n \tgit update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref -d refs/remotes/git-svn refs/remotes/git-svn\n@@ -28,20 +28,20 @@ head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`\n test_expect_success 'git-svn-HEAD is a real HEAD' \"test -n '$head'\"\n \n test_expect_success 'initialize old-style (v0) git-svn layout' \"\n-\tmkdir -p $GIT_DIR/git-svn/info $GIT_DIR/svn/info &&\n-\techo $svnrepo > $GIT_DIR/git-svn/info/url &&\n-\techo $svnrepo > $GIT_DIR/svn/info/url &&\n+\tmkdir -p '$GIT_DIR/git-svn/info' '$GIT_DIR/svn/info' &&\n+\techo '$svnrepo' > '$GIT_DIR/git-svn/info/url' &&\n+\techo '$svnrepo' > '$GIT_DIR/svn/info/url' &&\n \tgit-svn migrate &&\n-\t! test -d $GIT_DIR/git-svn &&\n+\t! test -d '$GIT_DIR/git-svn' &&\n \tgit rev-parse --verify refs/remotes/git-svn^0 &&\n \tgit rev-parse --verify refs/remotes/svn^0 &&\n-\ttest \\`git config --get svn-remote.svn.url\\` = '$svnrepo' &&\n+\ttest \\\"\\`git config --get svn-remote.svn.url\\`\\\" = \\\"$svnrepo\\\" &&\n \ttest \\`git config --get svn-remote.svn.fetch\\` = \\\n              ':refs/remotes/git-svn'\n \t\"\n \n test_expect_success 'initialize a multi-repository repo' \"\n-\tgit-svn init $svnrepo -T trunk -t tags -b branches &&\n+\tgit-svn init '$svnrepo' -T trunk -t tags -b branches &&\n \tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n \tgrep '^trunk:refs/remotes/trunk$' fetch.out &&\n \ttest -n \\\"\\`git config --get svn-remote.svn.branches \\\n@@ -76,14 +76,14 @@ test_expect_success 'multi-fetch works on partial urls + paths' \"\n test_expect_success 'migrate --minimize on old inited layout' \"\n \tgit config --unset-all svn-remote.svn.fetch &&\n \tgit config --unset-all svn-remote.svn.url &&\n-\trm -rf $GIT_DIR/svn &&\n+\trm -rf '$GIT_DIR/svn' &&\n \tfor i in \\`cat fetch.out\\`; do\n \t\tpath=\\`expr \\$i : '\\\\([^:]*\\\\):.*$'\\`\n \t\tref=\\`expr \\$i : '[^:]*:refs/remotes/\\\\(.*\\\\)$'\\`\n \t\tif test -z \\\"\\$ref\\\"; then continue; fi\n \t\tif test -n \\\"\\$path\\\"; then path=\\\"/\\$path\\\"; fi\n-\t\t( mkdir -p $GIT_DIR/svn/\\$ref/info/ &&\n-\t\techo $svnrepo\\$path > $GIT_DIR/svn/\\$ref/info/url ) || exit 1;\n+\t\t( mkdir -p '$GIT_DIR'/svn/\\$ref/info/ &&\n+\t\techo '$svnrepo'\\$path > '$GIT_DIR'/svn/\\$ref/info/url ) || exit 1;\n \tdone &&\n \tgit-svn migrate --minimize &&\n \ttest -z \\\"\\`git config -l |grep -v '^svn-remote\\.git-svn\\.'\\`\\\" &&\n@@ -99,13 +99,13 @@ test_expect_success 'migrate --minimize on old inited layout' \"\n \n test_expect_success  \".rev_db auto-converted to .rev_db.UUID\" \"\n \tgit-svn fetch -i trunk &&\n-\texpect=$GIT_DIR/svn/trunk/.rev_db.* &&\n+\texpect=\\\"\\`find \\\"\\$GIT_DIR\\\"/svn/trunk/ -name '.rev_db.*'\\`\\\" &&\n \ttest -n \\\"\\$expect\\\" &&\n-\tmv \\$expect $GIT_DIR/svn/trunk/.rev_db &&\n+\tmv \\\"\\$expect\\\" \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db &&\n \tgit-svn fetch -i trunk &&\n-\ttest -L $GIT_DIR/svn/trunk/.rev_db &&\n-\ttest -f \\$expect &&\n-\tcmp \\$expect $GIT_DIR/svn/trunk/.rev_db\n+\ttest -L \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db &&\n+\ttest -f \\\"\\$expect\\\" &&\n+\tcmp \\\"\\$expect\\\" \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db\n \t\"\n \n test_done\ndiff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh\nindex db4344c..c6dc0ef 100755\n--- a/t/t9108-git-svn-glob.sh\n+++ b/t/t9108-git-svn-glob.sh\n@@ -14,8 +14,8 @@ test_expect_success 'test refspec globbing' \"\n \tmkdir -p trunk/src/a trunk/src/b trunk/doc &&\n \techo 'hello world' > trunk/src/a/readme &&\n \techo 'goodbye world' > trunk/src/b/readme &&\n-\tsvn import -m 'initial' trunk $svnrepo/trunk &&\n-\tsvn co $svnrepo tmp &&\n+\tsvn import -m 'initial' trunk '$svnrepo/trunk' &&\n+\tsvn co '$svnrepo' tmp &&\n \tcd tmp &&\n \t\tmkdir branches tags &&\n \t\tsvn add branches tags &&\n@@ -38,7 +38,7 @@ test_expect_success 'test refspec globbing' \"\n \t\tpoke tags/end/src/b/readme &&\n \t\tsvn commit -m 'nothing to see here'\n \t\tcd .. &&\n-\tgit config --add svn-remote.svn.url $svnrepo &&\n+\tgit config --add svn-remote.svn.url '$svnrepo' &&\n \tgit config --add svn-remote.svn.fetch \\\n \t                 'trunk/src/a:refs/remotes/trunk' &&\n \tgit config --add svn-remote.svn.branches \\\n@@ -60,7 +60,7 @@ echo nothing to see here >> expect.two\n cat expect.end >> expect.two\n \n test_expect_success 'test left-hand-side only globbing' \"\n-\tgit config --add svn-remote.two.url $svnrepo &&\n+\tgit config --add svn-remote.two.url '$svnrepo' &&\n \tgit config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&\n \tgit config --add svn-remote.two.branches \\\n \t                 'branches/*:refs/remotes/two/branches/*' &&\ndiff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh\nindex 6235af4..d4ab01f 100755\n--- a/t/t9110-git-svn-use-svm-props.sh\n+++ b/t/t9110-git-svn-use-svm-props.sh\n@@ -8,11 +8,11 @@ test_description='git-svn useSvmProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svm repo' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9110/svm.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar $svnrepo/mirror/arr &&\n-\tgit-svn init --minimize-url -R argh -i dir $svnrepo/mirror/argh &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9110/svm.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar '$svnrepo/mirror/arr' &&\n+\tgit-svn init --minimize-url -R argh -i dir '$svnrepo/mirror/argh' &&\n \tgit-svn init --minimize-url -R argh -i e \\\n-\t  $svnrepo/mirror/argh/a/b/c/d/e &&\n+\t  '$svnrepo/mirror/argh/a/b/c/d/e' &&\n \tgit config svn.useSvmProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9111-git-svn-use-svnsync-props.sh b/t/t9111-git-svn-use-svnsync-props.sh\nindex ec7dedd..936f023 100755\n--- a/t/t9111-git-svn-use-svnsync-props.sh\n+++ b/t/t9111-git-svn-use-svnsync-props.sh\n@@ -8,10 +8,10 @@ test_description='git-svn useSvnsyncProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svnsync repo' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9111/svnsync.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar $svnrepo/bar &&\n-\tgit-svn init --minimize-url -R argh -i dir $svnrepo/dir &&\n-\tgit-svn init --minimize-url -R argh -i e $svnrepo/dir/a/b/c/d/e &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9111/svnsync.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar '$svnrepo/bar' &&\n+\tgit-svn init --minimize-url -R argh -i dir '$svnrepo/dir' &&\n+\tgit-svn init --minimize-url -R argh -i e '$svnrepo/dir/a/b/c/d/e' &&\n \tgit config svn.useSvnsyncProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9112-git-svn-md5less-file.sh b/t/t9112-git-svn-md5less-file.sh\nindex 08313bb..b095583 100755\n--- a/t/t9112-git-svn-md5less-file.sh\n+++ b/t/t9112-git-svn-md5less-file.sh\n@@ -38,8 +38,8 @@ PROPS-END\n \n EOF\n \n-test_expect_success 'load svn dumpfile' \"svnadmin load $rawsvnrepo < dumpfile.svn\"\n+test_expect_success 'load svn dumpfile' \"svnadmin load '$rawsvnrepo' < dumpfile.svn\"\n \n-test_expect_success 'initialize git-svn' \"git-svn init $svnrepo\"\n+test_expect_success 'initialize git-svn' \"git-svn init '$svnrepo'\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n test_done\ndiff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh\nindex 9ef0db9..0088c75 100755\n--- a/t/t9113-git-svn-dcommit-new-file.sh\n+++ b/t/t9113-git-svn-dcommit-new-file.sh\n@@ -15,14 +15,14 @@ test_description='git-svn dcommit new files over svn:// test'\n \n start_svnserve () {\n \tsvnserve --listen-port $SVNSERVE_PORT \\\n-\t         --root $rawsvnrepo \\\n+\t         --root '$rawsvnrepo' \\\n \t         --listen-once \\\n \t         --listen-host 127.0.0.1 &\n }\n \n test_expect_success 'start tracking an empty repo' \"\n-\tsvn mkdir -m 'empty dir' $svnrepo/empty-dir &&\n-\techo anon-access = write >> $rawsvnrepo/conf/svnserve.conf &&\n+\tsvn mkdir -m 'empty dir' '$svnrepo/empty-dir' &&\n+\techo anon-access = write >> '$rawsvnrepo/conf/svnserve.conf' &&\n \tstart_svnserve &&\n \tgit svn init svn://127.0.0.1:$SVNSERVE_PORT &&\n \tgit svn fetch\ndiff --git a/t/t9114-git-svn-dcommit-merge.sh b/t/t9114-git-svn-dcommit-merge.sh\nindex d6ca955..64ec7fd 100755\n--- a/t/t9114-git-svn-dcommit-merge.sh\n+++ b/t/t9114-git-svn-dcommit-merge.sh\n@@ -35,7 +35,7 @@ EOF\n }\n \n test_expect_success 'setup svn repository' \"\n-\tsvn co $svnrepo mysvnwork &&\n+\tsvn co '$svnrepo' mysvnwork &&\n \tmkdir -p mysvnwork/trunk &&\n \tcd mysvnwork &&\n \t\tbig_text_block >> trunk/README &&\n@@ -45,7 +45,7 @@ test_expect_success 'setup svn repository' \"\n \t\"\n \n test_expect_success 'setup git mirror and merge' \"\n-\tgit svn init $svnrepo -t tags -T trunk -b branches &&\n+\tgit svn init '$svnrepo' -t tags -T trunk -b branches &&\n \tgit svn fetch &&\n \tgit checkout --track -b svn remotes/trunk &&\n \tgit checkout -b merge &&\ndiff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh\nindex 182299c..653578d 100755\n--- a/t/t9115-git-svn-dcommit-funky-renames.sh\n+++ b/t/t9115-git-svn-dcommit-funky-renames.sh\n@@ -8,12 +8,12 @@ test_description='git-svn dcommit can commit renames of files with ugly names'\n . ./lib-git-svn.sh\n \n test_expect_success 'load repository with strange names' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9115/funky-names.dump &&\n \tstart_httpd\n \t\"\n \n test_expect_success 'init and fetch repository' \"\n-\tgit svn init $svnrepo &&\n+\tgit svn init '$svnrepo' &&\n \tgit svn fetch &&\n \tgit reset --hard git-svn\n \t\"\ndiff --git a/t/t9116-git-svn-log.sh b/t/t9116-git-svn-log.sh\nindex 0d4e6b3..70c0c5f 100755\n--- a/t/t9116-git-svn-log.sh\n+++ b/t/t9116-git-svn-log.sh\n@@ -14,9 +14,9 @@ test_expect_success 'setup repository and import' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . $svnrepo\n+\t\tsvn import -m test . '$svnrepo'\n \t\tcd .. &&\n-\tgit-svn init $svnrepo -T trunk -b branches -t tags &&\n+\tgit-svn init '$svnrepo' -T trunk -b branches -t tags &&\n \tgit-svn fetch &&\n \tgit reset --hard trunk &&\n \techo bye >> README &&\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex cc1253c..a68415f 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -229,7 +229,7 @@ test_create_repo () {\n \trepo=\"$1\"\n \tmkdir \"$repo\"\n \tcd \"$repo\" || error \"Cannot setup test environment\"\n-\t\"$GIT_EXEC_PATH/git\" init --template=$GIT_EXEC_PATH/templates/blt/ >/dev/null 2>&1 ||\n+\t\"$GIT_EXEC_PATH/git\" init --template=\"$GIT_EXEC_PATH/templates/blt/\" >/dev/null 2>&1 ||\n \terror \"cannot run git init -- have you built things yet?\"\n \tmv .git/hooks .git/hooks-disabled\n \tcd \"$owd\"\n-- \n1.5.3.1\n"},{"id":"55448","messageId":"470DC05A.8020209@viscovery.net","threadId":"10239","inReplyTo":"11920508172434-git-send-email-jon.delStrother@bestbefore.tv","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-11T06:19:06Z","receivedAt":"2007-10-11T06:19:06Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> +\tcmt=`cat \"$dotest/current\"`\n\nThis is ok, but...\n\n> +\t\t\tprev_head=\"`cat \\\"$dotest/prev_head\\\"`\"\n\n... there are shells out there in the wild that will get badly confused by \nthis sort of quoting and escaping. Butter use\n\n\tprev_head=$(cat \"$dotest/prev_head\")\n\n\n> -VISUAL=\"$(pwd)/fake-editor.sh\"\n> +VISUAL=\"'$(pwd)/fake-editor.sh'\"\n\nHuh? This looks very wrong. What are the extra quotes needed for? If they \nare really needed, isn't this a bug in git-rebase--interactive.sh?\n\n> -\t git-commit -F msg -m amending .\"\n> +\tgit-commit -F msg -m amending .\"\n\nYou fix whitespace...\n\n>  test_expect_success \\\n> -\t\"using message from other commit\" \\\n> -\t\"git-commit -C HEAD^ .\"\n> +\t \"using message from other commit\" \\\n> +\t \"git-commit -C HEAD^ .\"\n\n... and you break it. More of these follow. Don't do that, it makes patch \nreview unnecessarily hard.\n\nI question the usefulness of this patch. Why only fix breakage due to spaces \nin the path? What about single-quotes, double-quotes? IMHO, it's not too \nmuch of a burden for developers to require \"sane\" build directory paths.\n\n-- Hannes\n"},{"id":"55451","messageId":"854pgytafi.fsf@lola.goethe.zz","threadId":"10239","inReplyTo":"470DC05A.8020209@viscovery.net","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-11T06:47:13Z","receivedAt":"2007-10-11T06:47:13Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Johannes Sixt <j.sixt@viscovery.net> writes:\n\n> Jonathan del Strother schrieb:\n>> +\tcmt=`cat \"$dotest/current\"`\n>\n> This is ok, but...\n>\n>> +\t\t\tprev_head=\"`cat \\\"$dotest/prev_head\\\"`\"\n>\n> ... there are shells out there in the wild that will get badly\n> confused by this sort of quoting and escaping. Butter use\n>\n> \tprev_head=$(cat \"$dotest/prev_head\")\n>\n>\n>> -VISUAL=\"$(pwd)/fake-editor.sh\"\n>> +VISUAL=\"'$(pwd)/fake-editor.sh'\"\n>\n> Huh? This looks very wrong.\n\nIt is correct, modulo breaking when there are single quotes in the\ncurrent path name.\n\n> What are the extra quotes needed for?\n\nSpaces in the current path name.\n\n> If they are really needed, isn't this a bug in\n> git-rebase--interactive.sh?\n\nNo.\n\n> I question the usefulness of this patch. Why only fix breakage due\n> to spaces in the path? What about single-quotes, double-quotes?\n\nDouble quotes would work.  Single quotes wouldn't.  You can do\nsomething like\n\nvisualpath=\"$(pwd)\"\nexport visualpath\nVISUAL='\"$visualpath/fake-editor.sh\"'\n\nand this should work in all circumstances where VISUAL is interpreted\nas intended (which at the current point of time does not include git's\nC callers).\n\n> IMHO, it's not too much of a burden for developers to require \"sane\"\n> build directory paths.\n\nFor a normal user, the only writable directories might be of the\n\"C:\\Programs and Data\\User settings\\Karl\"\nvariety.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"55452","messageId":"470DCC76.7070809@viscovery.net","threadId":"10239","inReplyTo":"854pgytafi.fsf@lola.goethe.zz","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-11T07:10:46Z","receivedAt":"2007-10-11T07:10:46Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"David Kastrup schrieb:\n> Johannes Sixt <j.sixt@viscovery.net> writes:\n>> IMHO, it's not too much of a burden for developers to require \"sane\"\n>> build directory paths.\n> \n> For a normal user, the only writable directories might be of the\n> \"C:\\Programs and Data\\User settings\\Karl\"\n> variety.\n\nI whole-heartedly agree about the part of the patch that fixes \ngit-rebase.sh. This should be a separate patch.\n\nBut the reset of the patch is about running the test suite, and it is much \nmore difficult to fix because of the 'eval' that is going on. And, yes, I do \nthink that we can expect that contributors, including this handful of people \non Windows, have a \"sane\" build directory.\n\n-- Hannes\n"},{"id":"55454","messageId":"81156EED-7AC0-4C8B-98B1-8338262459A6@bestbefore.tv","threadId":"10239","inReplyTo":"470DCC76.7070809@viscovery.net","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Jonathan del Strother","fromEmail":"jon.delstrother@bestbefore.tv","sentAt":"2007-10-11T07:30:16Z","receivedAt":"2007-10-11T07:30:16Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"\nOn 11 Oct 2007, at 08:10, Johannes Sixt wrote:\n\n> David Kastrup schrieb:\n>> Johannes Sixt <j.sixt@viscovery.net> writes:\n>>> IMHO, it's not too much of a burden for developers to require \"sane\"\n>>> build directory paths.\n>> For a normal user, the only writable directories might be of the\n>> \"C:\\Programs and Data\\User settings\\Karl\"\n>> variety.\n>\n> I whole-heartedly agree about the part of the patch that fixes git- \n> rebase.sh. This should be a separate patch.\n>\n> But the reset of the patch is about running the test suite, and it  \n> is much more difficult to fix because of the 'eval' that is going  \n> on. And, yes, I do think that we can expect that contributors,  \n> including this handful of people on Windows, have a \"sane\" build  \n> directory.\n\nHow are you going to test that git works on paths with spaces if the  \ntest suite doesn't run there?\n"},{"id":"55453","messageId":"470DD3B8.1080809@viscovery.net","threadId":"10239","inReplyTo":"81156EED-7AC0-4C8B-98B1-8338262459A6@bestbefore.tv","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-11T07:41:44Z","receivedAt":"2007-10-11T07:41:44Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> How are you going to test that git works on paths with spaces if the \n> test suite doesn't run there?\n\nBy writing a specific test?\n\n-- Hannes\n"},{"id":"55504","messageId":"85k5pts796.fsf@lola.goethe.zz","threadId":"10239","inReplyTo":"470DD3B8.1080809@viscovery.net","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-11T20:53:25Z","receivedAt":"2007-10-11T20:53:25Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Johannes Sixt <j.sixt@viscovery.net> writes:\n\n> Jonathan del Strother schrieb:\n>> How are you going to test that git works on paths with spaces if the\n>> test suite doesn't run there?\n>\n> By writing a specific test?\n\nThis is going to be much less thorough.  And it does no harm if the\ntest scripts demonstrate defensive programming.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"55508","messageId":"63D5CE5B-51DD-4017-B2E2-2ADC5DCBE849@steelskies.com","threadId":"10239","inReplyTo":"85k5pts796.fsf@lola.goethe.zz","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-11T21:22:48Z","receivedAt":"2007-10-11T21:22:48Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"\nOn 11 Oct 2007, at 21:53, David Kastrup wrote:\n\n> Johannes Sixt <j.sixt@viscovery.net> writes:\n>\n>> Jonathan del Strother schrieb:\n>>> How are you going to test that git works on paths with spaces if the\n>>> test suite doesn't run there?\n>>\n>> By writing a specific test?\n>\n> This is going to be much less thorough.  And it does no harm if the\n> test scripts demonstrate defensive programming.\n\nI would also point out that most tests have already been written to  \nhandle this case - ones that don't quote their paths are in the  \nminority.\n"},{"id":"55509","messageId":"Pine.LNX.4.64.0710112227000.4174@racer.site","threadId":"10239","inReplyTo":"63D5CE5B-51DD-4017-B2E2-2ADC5DCBE849@steelskies.com","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-11T21:31:05Z","receivedAt":"2007-10-11T21:31:05Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 11 Oct 2007, Jonathan del Strother wrote:\n\n> On 11 Oct 2007, at 21:53, David Kastrup wrote:\n> \n> > Johannes Sixt <j.sixt@viscovery.net> writes:\n> > \n> > > Jonathan del Strother schrieb:\n> > > > How are you going to test that git works on paths with spaces if the\n> > > > test suite doesn't run there?\n> > > \n> > > By writing a specific test?\n> > \n> > This is going to be much less thorough.  And it does no harm if the \n> > test scripts demonstrate defensive programming.\n\nWe do not have _extensive_ tests.  We want to do some coding in addition \nto waiting for our machines to finish the test.  D'oh.\n\n> I would also point out that most tests have already been written to \n> handle this case - ones that don't quote their paths are in the \n> minority.\n\nThat might very well be the case, and your goal is laudable.  However, I \nhave to agree that most devs (indeed, since you are the first to try to \nfix it, _all_ except for you) do not care that deeply about spaces in the \npath, and having a _single_ test for this would be the logical solution.\n\nI mean, we do not force our main developers to run the most obscure setups \nall the time just to make sure that it runs fine.  Otherwise none of us \ncould run Linux, but a couple would be coerced into running Windows, for \nexample.\n\nCiao,\nDscho\n"},{"id":"55511","messageId":"85tzoxqqi0.fsf@lola.goethe.zz","threadId":"10239","inReplyTo":"Pine.LNX.4.64.0710112227000.4174@racer.site","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-11T21:40:39Z","receivedAt":"2007-10-11T21:40:39Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> On Thu, 11 Oct 2007, Jonathan del Strother wrote:\n>\n>> On 11 Oct 2007, at 21:53, David Kastrup wrote:\n>> \n>> > Johannes Sixt <j.sixt@viscovery.net> writes:\n>> > \n>> > > Jonathan del Strother schrieb:\n>> > > > How are you going to test that git works on paths with spaces if the\n>> > > > test suite doesn't run there?\n>> > > \n>> > > By writing a specific test?\n>> > \n>> > This is going to be much less thorough.  And it does no harm if the \n>> > test scripts demonstrate defensive programming.\n>\n> We do not have _extensive_ tests.  We want to do some coding in\n> addition to waiting for our machines to finish the test.  D'oh.\n\nA good reason for not requiring special tests just for spaces.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"55527","messageId":"470F1791.9010601@viscovery.net","threadId":"10239","inReplyTo":"63D5CE5B-51DD-4017-B2E2-2ADC5DCBE849@steelskies.com","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-12T06:43:29Z","receivedAt":"2007-10-12T06:43:29Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> \n> On 11 Oct 2007, at 21:53, David Kastrup wrote:\n> \n>> Johannes Sixt <j.sixt@viscovery.net> writes:\n>>\n>>> Jonathan del Strother schrieb:\n>>>> How are you going to test that git works on paths with spaces if the\n>>>> test suite doesn't run there?\n>>>\n>>> By writing a specific test?\n>>\n>> This is going to be much less thorough.  And it does no harm if the\n>> test scripts demonstrate defensive programming.\n> \n> I would also point out that most tests have already been written to \n> handle this case - ones that don't quote their paths are in the minority.\n\nActually, reconsidering your proposed patch, there are only a handful of \nproblematic cases, namely those where the test script is quoted with \ndouble-quotes, like this:\n\n  test_expect_success 'load repository with strange names' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9115/funky-names.dump &&\n  \tstart_httpd\n  \t\"\n\nThe problem is that here $rawsvnrepo will be expanded before the entire test \nscript is passed as argument to test_expect_success. Consider the case where \n$rawsvnrepo contains a single-quote (say, a directory named \"Joe's git\"): \nthen the 'eval' inside test_expect_success sees a syntax error. The proper \nchange is:\n\n  test_expect_success 'load repository with strange names' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&\n+\tsvnadmin load -q \\\"\\$rawsvnrepo\\\" < ../t9115/funky-names.dump &&\n  \tstart_httpd\n  \t\"\n\nSo, what I think you should do is:\n\n1. Submit the change to git-rebase.sh in a separate patch.\n2. Fix the patch for the double-quoted test scriptlets.\n\nThat should remove all my concerns.\n\n-- Hannes\n"},{"id":"55543","messageId":"E43846E3-4F42-4B3A-BA5F-1A21FE70C3FB@wincent.com","threadId":"10239","inReplyTo":"85k5pts796.fsf@lola.goethe.zz","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2007-10-12T11:17:39Z","receivedAt":"2007-10-12T11:17:39Z","isPatch":true,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 11/10/2007, a las 22:53, David Kastrup escribió:\n\n> Johannes Sixt <j.sixt@viscovery.net> writes:\n>\n>> Jonathan del Strother schrieb:\n>>> How are you going to test that git works on paths with spaces if the\n>>> test suite doesn't run there?\n>>\n>> By writing a specific test?\n>\n> This is going to be much less thorough.  And it does no harm if the\n> test scripts demonstrate defensive programming.\n\n+1: especially in this case, where it really is \"defensive\" and not  \n\"paranoiac\".\n\nCheers,\nWincent\n"},{"id":"55548","messageId":"Pine.LNX.4.64.0710121235230.25221@racer.site","threadId":"10239","inReplyTo":"E43846E3-4F42-4B3A-BA5F-1A21FE70C3FB@wincent.com","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-12T11:37:37Z","receivedAt":"2007-10-12T11:37:37Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 12 Oct 2007, Wincent Colaiuta wrote:\n\n> El 11/10/2007, a las 22:53, David Kastrup escribi?:\n> \n> > Johannes Sixt <j.sixt@viscovery.net> writes:\n> > \n> > > Jonathan del Strother schrieb:\n> > > > How are you going to test that git works on paths with spaces if the\n> > > > test suite doesn't run there?\n> > > \n> > > By writing a specific test?\n> > \n> > This is going to be much less thorough.  And it does no harm if the\n> > test scripts demonstrate defensive programming.\n> \n> +1: especially in this case, where it really is \"defensive\" and not\n> \"paranoiac\".\n\nI am all for it, _iff_ the guilty parties (and by that, I mean _you_) do \nit and keep maintaining it.  See?  Discussion closed already.\n\nCiao,\nDscho\n"},{"id":"55553","messageId":"A7970E82-92E0-4267-AF79-D4ABDB21F0D0@wincent.com","threadId":"10239","inReplyTo":"Pine.LNX.4.64.0710121235230.25221@racer.site","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2007-10-12T12:20:36Z","receivedAt":"2007-10-12T12:20:36Z","isPatch":true,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 12/10/2007, a las 13:37, Johannes Schindelin escribió:\n\n> On Fri, 12 Oct 2007, Wincent Colaiuta wrote:\n>\n>> El 11/10/2007, a las 22:53, David Kastrup escribió:\n>>\n>>> Johannes Sixt <j.sixt@viscovery.net> writes:\n>>>\n>>>> Jonathan del Strother schrieb:\n>>>>> How are you going to test that git works on paths with spaces  \n>>>>> if the\n>>>>> test suite doesn't run there?\n>>>>\n>>>> By writing a specific test?\n>>>\n>>> This is going to be much less thorough.  And it does no harm if the\n>>> test scripts demonstrate defensive programming.\n>>\n>> +1: especially in this case, where it really is \"defensive\" and not\n>> \"paranoiac\".\n>\n> I am all for it, _iff_ the guilty parties (and by that, I mean  \n> _you_) do\n> it and keep maintaining it.  See?  Discussion closed already.\n\nHow am *I* the guilty party? I'm merely endorsing David's comment  \nthat a modicum of defensive programming isn't a bad thing; an  \neminently reasonable position which is somewhat difficult to argue  \nagainst.\n\nCheers,\nWincent\n"},{"id":"55555","messageId":"Pine.LNX.4.64.0710121351200.25221@racer.site","threadId":"10239","inReplyTo":"A7970E82-92E0-4267-AF79-D4ABDB21F0D0@wincent.com","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-12T12:51:38Z","receivedAt":"2007-10-12T12:51:38Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 12 Oct 2007, Wincent Colaiuta wrote:\n\n> El 12/10/2007, a las 13:37, Johannes Schindelin escribi?:\n> \n> > On Fri, 12 Oct 2007, Wincent Colaiuta wrote:\n> > \n> > > El 11/10/2007, a las 22:53, David Kastrup escribi?:\n> > > \n> > > > Johannes Sixt <j.sixt@viscovery.net> writes:\n> > > > \n> > > > > Jonathan del Strother schrieb:\n> > > > > > How are you going to test that git works on paths with spaces if\n> > > > > > the\n> > > > > > test suite doesn't run there?\n> > > > > \n> > > > > By writing a specific test?\n> > > > \n> > > > This is going to be much less thorough.  And it does no harm if the\n> > > > test scripts demonstrate defensive programming.\n> > > \n> > > +1: especially in this case, where it really is \"defensive\" and not\n> > > \"paranoiac\".\n> > \n> > I am all for it, _iff_ the guilty parties (and by that, I mean _you_) do\n> > it and keep maintaining it.  See?  Discussion closed already.\n> \n> How am *I* the guilty party? I'm merely endorsing David's comment that a \n> modicum of defensive programming isn't a bad thing; an eminently \n> reasonable position which is somewhat difficult to argue against.\n\nAll I'm saying: let patches speak.  Talk is cheap.\n\nCiao,\nDscho\n"},{"id":"55557","messageId":"86bqb4qxte.fsf@lola.quinscape.zz","threadId":"10239","inReplyTo":"Pine.LNX.4.64.0710121351200.25221@racer.site","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-12T13:14:53Z","receivedAt":"2007-10-12T13:14:53Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> On Fri, 12 Oct 2007, Wincent Colaiuta wrote:\n>\n>> El 12/10/2007, a las 13:37, Johannes Schindelin escribi?:\n>> \n>> > On Fri, 12 Oct 2007, Wincent Colaiuta wrote:\n>> > \n>> > > El 11/10/2007, a las 22:53, David Kastrup escribi?:\n>> > > \n>> > > > Johannes Sixt <j.sixt@viscovery.net> writes:\n>> > > > \n>> > > > > Jonathan del Strother schrieb:\n>> > > > > > How are you going to test that git works on paths with spaces if\n>> > > > > > the\n>> > > > > > test suite doesn't run there?\n>> > > > > \n>> > > > > By writing a specific test?\n>> > > > \n>> > > > This is going to be much less thorough.  And it does no harm if the\n>> > > > test scripts demonstrate defensive programming.\n>> > > \n>> > > +1: especially in this case, where it really is \"defensive\" and not\n>> > > \"paranoiac\".\n>> > \n>> > I am all for it, _iff_ the guilty parties (and by that, I mean _you_) do\n>> > it and keep maintaining it.  See?  Discussion closed already.\n>> \n>> How am *I* the guilty party? I'm merely endorsing David's comment that a \n>> modicum of defensive programming isn't a bad thing; an eminently \n>> reasonable position which is somewhat difficult to argue against.\n>\n> All I'm saying: let patches speak.  Talk is cheap.\n\nThe patches spoke.  That is what the [PATCH] in the subject line was about.\n\n-- \nDavid Kastrup\n"},{"id":"55618","messageId":"92879AC5-2927-439B-8EB0-AC20AAEE412E@steelskies.com","threadId":"10239","inReplyTo":"470DC05A.8020209@viscovery.net","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-13T18:12:08Z","receivedAt":"2007-10-13T18:12:08Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"On 11 Oct 2007, at 07:19, Johannes Sixt wrote:\n\n>> -\t git-commit -F msg -m amending .\"\n>> +\tgit-commit -F msg -m amending .\"\n>\n> You fix whitespace...\n>\n>>  test_expect_success \\\n>> -\t\"using message from other commit\" \\\n>> -\t\"git-commit -C HEAD^ .\"\n>> +\t \"using message from other commit\" \\\n>> +\t \"git-commit -C HEAD^ .\"\n>\n> ... and you break it. More of these follow. Don't do that, it makes  \n> patch review unnecessarily hard.\n\n\nI'm just preparing to release this patch... was that \"don't break  \nwhitespace\", or \"don't try to fix whitespace in a patch that's has  \nnothing to do with whitespacing-fixing\" ?\n\nAnd while I'm here - tabs are preferred, are they?  There seem to be  \na mixture of tabs & 4 space indentation.\n"},{"id":"55653","messageId":"4711486B.1050301@op5.se","threadId":"10239","inReplyTo":"92879AC5-2927-439B-8EB0-AC20AAEE412E@steelskies.com","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2007-10-13T22:36:27Z","receivedAt":"2007-10-13T22:36:27Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Jonathan del Strother wrote:\n> On 11 Oct 2007, at 07:19, Johannes Sixt wrote:\n> \n>>> -     git-commit -F msg -m amending .\"\n>>> +    git-commit -F msg -m amending .\"\n>>\n>> You fix whitespace...\n>>\n>>>  test_expect_success \\\n>>> -    \"using message from other commit\" \\\n>>> -    \"git-commit -C HEAD^ .\"\n>>> +     \"using message from other commit\" \\\n>>> +     \"git-commit -C HEAD^ .\"\n>>\n>> ... and you break it. More of these follow. Don't do that, it makes \n>> patch review unnecessarily hard.\n> \n> \n> I'm just preparing to release this patch... was that \"don't break \n> whitespace\", or \"don't try to fix whitespace in a patch that's has \n> nothing to do with whitespacing-fixing\" ?\n> \n\nBoth, I think ;-)\n\n> And while I'm here - tabs are preferred, are they?  There seem to be a \n> mixture of tabs & 4 space indentation.\n\n1 hard tab / level of indent, but use spaces for continuation alignment.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"55861","messageId":"11924540293297-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"4711486B.1050301@op5.se","subject":"Re: [PATCH] Fixing path quoting issues","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-15T13:13:46Z","receivedAt":"2007-10-15T13:13:46Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"\nOK, second attempt at this.  First patch fixes quoting in git rebase.  Second patch allows you to run tests from a path with a space in.  The third allows you to run tests from a path with an apostrophe in (and is where things start to get a bit ugly, hence the separate patch).\n"},{"id":"55860","messageId":"11924540292687-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"4711486B.1050301@op5.se","subject":"[PATCH 1/3] Fixing path quoting in git-rebase","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-15T13:13:47Z","receivedAt":"2007-10-15T13:13:47Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"From: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n\ngit-rebase used to fail when run from a path with a space in.\n\nSigned-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n---\n git-rebase.sh |   26 +++++++++++++-------------\n 1 files changed, 13 insertions(+), 13 deletions(-)\n\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex 1583402..9995d9d 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -59,7 +59,7 @@ continue_merge () {\n \t\tdie \"$RESOLVEMSG\"\n \tfi\n \n-\tcmt=`cat $dotest/current`\n+\tcmt=`cat \"$dotest/current\"`\n \tif ! git diff-index --quiet HEAD\n \tthen\n \t\tif ! git-commit -C \"$cmt\"\n@@ -84,14 +84,14 @@ continue_merge () {\n }\n \n call_merge () {\n-\tcmt=\"$(cat $dotest/cmt.$1)\"\n+\tcmt=\"$(cat \"$dotest/cmt.$1\")\"\n \techo \"$cmt\" > \"$dotest/current\"\n \thd=$(git rev-parse --verify HEAD)\n \tcmt_name=$(git symbolic-ref HEAD)\n-\tmsgnum=$(cat $dotest/msgnum)\n-\tend=$(cat $dotest/end)\n+\tmsgnum=$(cat \"$dotest/msgnum\")\n+\tend=$(cat \"$dotest/end\")\n \teval GITHEAD_$cmt='\"${cmt_name##refs/heads/}~$(($end - $msgnum))\"'\n-\teval GITHEAD_$hd='\"$(cat $dotest/onto_name)\"'\n+\teval GITHEAD_$hd='\"$(cat \\\"$dotest/onto_name\\\")\"'\n \texport GITHEAD_$cmt GITHEAD_$hd\n \tgit-merge-$strategy \"$cmt^\" -- \"$hd\" \"$cmt\"\n \trv=$?\n@@ -140,10 +140,10 @@ do\n \t\t}\n \t\tif test -d \"$dotest\"\n \t\tthen\n-\t\t\tprev_head=\"`cat $dotest/prev_head`\"\n-\t\t\tend=\"`cat $dotest/end`\"\n-\t\t\tmsgnum=\"`cat $dotest/msgnum`\"\n-\t\t\tonto=\"`cat $dotest/onto`\"\n+\t\t\tprev_head=$(cat \"$dotest/prev_head\")\n+\t\t\tend=$(cat \"$dotest/end\")\n+\t\t\tmsgnum=$(cat \"$dotest/msgnum\")\n+\t\t\tonto=$(cat \"$dotest/onto\")\n \t\t\tcontinue_merge\n \t\t\twhile test \"$msgnum\" -le \"$end\"\n \t\t\tdo\n@@ -160,11 +160,11 @@ do\n \t\tif test -d \"$dotest\"\n \t\tthen\n \t\t\tgit rerere clear\n-\t\t\tprev_head=\"`cat $dotest/prev_head`\"\n-\t\t\tend=\"`cat $dotest/end`\"\n-\t\t\tmsgnum=\"`cat $dotest/msgnum`\"\n+\t\t\tprev_head=$(cat \"$dotest/prev_head\")\n+\t\t\tend=$(cat \"$dotest/end\")\n+\t\t\tmsgnum=$(cat \"$dotest/msgnum\")\n \t\t\tmsgnum=$(($msgnum + 1))\n-\t\t\tonto=\"`cat $dotest/onto`\"\n+\t\t\tonto=$(cat \"$dotest/onto\")\n \t\t\twhile test \"$msgnum\" -le \"$end\"\n \t\t\tdo\n \t\t\t\tcall_merge \"$msgnum\"\n-- \n1.5.3.1\n"},{"id":"55863","messageId":"11924540291536-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"4711486B.1050301@op5.se","subject":"[PATCH 2/3] Quoting paths in tests","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-15T13:13:48Z","receivedAt":"2007-10-15T13:13:48Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"From: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n\nAdd quoting to various test paths so they can be run from a path with a space in\n\nSigned-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n---\n t/lib-git-svn.sh                         |    2 +-\n t/t1020-subdirectory.sh                  |   22 ++++++------\n t/t3050-subprojects-fetch.sh             |    2 +-\n t/t3404-rebase-interactive.sh            |    2 +-\n t/t5500-fetch-pack.sh                    |    2 +-\n t/t5700-clone-reference.sh               |    2 +-\n t/t7003-filter-branch.sh                 |    2 +-\n t/t7501-commit.sh                        |    4 +-\n t/t9100-git-svn-basic.sh                 |   18 +++++-----\n t/t9101-git-svn-props.sh                 |    6 ++--\n t/t9102-git-svn-deep-rmdir.sh            |    6 ++--\n t/t9104-git-svn-follow-parent.sh         |   50 +++++++++++++++---------------\n t/t9105-git-svn-commit-diff.sh           |   10 +++---\n t/t9106-git-svn-commit-diff-clobber.sh   |   14 ++++----\n t/t9107-git-svn-migrate.sh               |   40 ++++++++++++------------\n t/t9108-git-svn-glob.sh                  |    8 ++--\n t/t9110-git-svn-use-svm-props.sh         |    8 ++--\n t/t9111-git-svn-use-svnsync-props.sh     |    8 ++--\n t/t9112-git-svn-md5less-file.sh          |    4 +-\n t/t9113-git-svn-dcommit-new-file.sh      |    6 ++--\n t/t9114-git-svn-dcommit-merge.sh         |    4 +-\n t/t9115-git-svn-dcommit-funky-renames.sh |    4 +-\n t/t9116-git-svn-log.sh                   |    4 +-\n t/t9500-gitweb-standalone-no-errors.sh   |    4 +-\n t/test-lib.sh                            |    2 +-\n 25 files changed, 117 insertions(+), 117 deletions(-)\n\ndiff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh\nindex 8d4a447..cde3053 100644\n--- a/t/lib-git-svn.sh\n+++ b/t/lib-git-svn.sh\n@@ -25,7 +25,7 @@ perl -w -e \"\n use SVN::Core;\n use SVN::Repos;\n \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n-system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or exit(41);\n+system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or exit(41);\n \" >&3 2>&4\n x=$?\n if test $x -ne 0\ndiff --git a/t/t1020-subdirectory.sh b/t/t1020-subdirectory.sh\nindex b9cef34..5ed7fa4 100755\n--- a/t/t1020-subdirectory.sh\n+++ b/t/t1020-subdirectory.sh\n@@ -21,7 +21,7 @@ LF='\n '\n \n test_expect_success 'update-index and ls-files' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit update-index --add one &&\n \tcase \"`git ls-files`\" in\n \tone) echo ok one ;;\n@@ -41,7 +41,7 @@ test_expect_success 'update-index and ls-files' '\n '\n \n test_expect_success 'cat-file' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \ttwo=`git ls-files -s dir/two` &&\n \ttwo=`expr \"$two\" : \"[0-7]* \\\\([0-9a-f]*\\\\)\"` &&\n \techo \"$two\" &&\n@@ -54,7 +54,7 @@ test_expect_success 'cat-file' '\n rm -f actual dir/actual\n \n test_expect_success 'diff-files' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \techo a >>one &&\n \techo d >>dir/two &&\n \tcase \"`git diff-files --name-only`\" in\n@@ -74,7 +74,7 @@ test_expect_success 'diff-files' '\n '\n \n test_expect_success 'write-tree' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \ttop=`git write-tree` &&\n \techo $top &&\n \tcd dir &&\n@@ -84,7 +84,7 @@ test_expect_success 'write-tree' '\n '\n \n test_expect_success 'checkout-index' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit checkout-index -f -u one &&\n \tcmp one original.one &&\n \tcd dir &&\n@@ -93,7 +93,7 @@ test_expect_success 'checkout-index' '\n '\n \n test_expect_success 'read-tree' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \trm -f one dir/two &&\n \ttree=`git write-tree` &&\n \tgit read-tree --reset -u \"$tree\" &&\n@@ -107,27 +107,27 @@ test_expect_success 'read-tree' '\n '\n \n test_expect_success 'no file/rev ambiguity check inside .git' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit commit -a -m 1 &&\n-\tcd $HERE/.git &&\n+\tcd \"$HERE/.git\" &&\n \tgit show -s HEAD\n '\n \n test_expect_success 'no file/rev ambiguity check inside a bare repo' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit clone -s --bare .git foo.git &&\n \tcd foo.git && GIT_DIR=. git show -s HEAD\n '\n \n # This still does not work as it should...\n : test_expect_success 'no file/rev ambiguity check inside a bare repo' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit clone -s --bare .git foo.git &&\n \tcd foo.git && git show -s HEAD\n '\n \n test_expect_success 'detection should not be fooled by a symlink' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \trm -fr foo.git &&\n \tgit clone -s .git another &&\n \tln -s another yetanother &&\ndiff --git a/t/t3050-subprojects-fetch.sh b/t/t3050-subprojects-fetch.sh\nindex 34f26a8..4b74cc6 100755\n--- a/t/t3050-subprojects-fetch.sh\n+++ b/t/t3050-subprojects-fetch.sh\n@@ -20,7 +20,7 @@ test_expect_success setup '\n '\n \n test_expect_success clone '\n-\tgit clone file://`pwd`/.git cloned &&\n+\tgit clone \"file://`pwd`/.git\" cloned &&\n \t(git rev-parse HEAD; git ls-files -s) >expected &&\n \t(\n \t\tcd cloned &&\ndiff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh\nindex 1113904..aa86042 100755\n--- a/t/t3404-rebase-interactive.sh\n+++ b/t/t3404-rebase-interactive.sh\n@@ -92,7 +92,7 @@ done\n EOF\n \n chmod a+x fake-editor.sh\n-VISUAL=\"$(pwd)/fake-editor.sh\"\n+VISUAL=\"\\\"$(pwd)/fake-editor.sh\\\"\"\n export VISUAL\n \n test_expect_success 'no changes are a nop' '\ndiff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh\nindex 7b6798d..5489ffe 100755\n--- a/t/t5500-fetch-pack.sh\n+++ b/t/t5500-fetch-pack.sh\n@@ -129,7 +129,7 @@ pull_to_client 2nd \"B\" $((64*3))\n \n pull_to_client 3rd \"A\" $((1*3)) # old fails\n \n-test_expect_success \"clone shallow\" \"git-clone --depth 2 file://`pwd`/. shallow\"\n+test_expect_success \"clone shallow\" \"git-clone --depth 2 \\\"file://`pwd`/.\\\" shallow\"\n \n (cd shallow; git count-objects -v) > count.shallow\n \ndiff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh\nindex 4e93aaa..8bb34f9 100755\n--- a/t/t5700-clone-reference.sh\n+++ b/t/t5700-clone-reference.sh\n@@ -51,7 +51,7 @@ diff expected current'\n cd \"$base_dir\"\n \n test_expect_success 'cloning with reference (no -l -s)' \\\n-'git clone --reference B file://`pwd`/A D'\n+'git clone --reference B \"file://`pwd`/A\" D'\n \n cd \"$base_dir\"\n \ndiff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh\nindex e935b20..1ab5392 100755\n--- a/t/t7003-filter-branch.sh\n+++ b/t/t7003-filter-branch.sh\n@@ -107,7 +107,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '\n \t\t \"git ls-files -s | sed \\\"s-\\\\t-&newsubdir/-\\\" |\n \t          GIT_INDEX_FILE=\\$GIT_INDEX_FILE.new \\\n \t\t\tgit update-index --index-info &&\n-\t\t  mv \\$GIT_INDEX_FILE.new \\$GIT_INDEX_FILE\" directorymoved &&\n+\t\t  mv \\\"\\$GIT_INDEX_FILE.new\\\" \\\"\\$GIT_INDEX_FILE\\\"\" directorymoved &&\n \ttest -z \"$(git diff HEAD directorymoved:newsubdir)\"'\n \n test_expect_success 'stops when msg filter fails' '\ndiff --git a/t/t7501-commit.sh b/t/t7501-commit.sh\nindex b151b51..e97e756 100644\n--- a/t/t7501-commit.sh\n+++ b/t/t7501-commit.sh\n@@ -69,7 +69,7 @@ test_expect_success \\\n \n cat >editor <<\\EOF\n #!/bin/sh\n-sed -i -e \"s/a file/an amend commit/g\" $1\n+sed -i -e \"s/a file/an amend commit/g\" \"$1\"\n EOF\n chmod 755 editor\n \n@@ -88,7 +88,7 @@ test_expect_success \\\n \n cat >editor <<\\EOF\n #!/bin/sh\n-sed -i -e \"s/amend/older/g\" $1\n+sed -i -e \"s/amend/older/g\" \"$1\"\n EOF\n chmod 755 editor\n \ndiff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh\nindex 614cf50..c3585da 100755\n--- a/t/t9100-git-svn-basic.sh\n+++ b/t/t9100-git-svn-basic.sh\n@@ -31,16 +31,16 @@ test_expect_success \\\n \techo 'zzz' > bar/zzz &&\n \techo '#!/bin/sh' > exec.sh &&\n \tchmod +x exec.sh &&\n-\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n+\tsvn import -m 'import for git-svn' . '$svnrepo' >/dev/null &&\n \tcd .. &&\n \trm -rf import &&\n-\tgit-svn init $svnrepo\"\n+\tgit-svn init '$svnrepo'\"\n \n test_expect_success \\\n     'import an SVN revision into git' \\\n     'git-svn fetch'\n \n-test_expect_success \"checkout from svn\" \"svn co $svnrepo '$SVN_TREE'\"\n+test_expect_success \"checkout from svn\" \"svn co '$svnrepo' '$SVN_TREE'\"\n \n name='try a deep --rmdir with a commit'\n test_expect_success \"$name\" \"\n@@ -169,7 +169,7 @@ test_expect_success \"$name\" \"\n \tsvn up '$SVN_TREE' &&\n \ttest -f '$SVN_TREE'/exec-2.sh &&\n \ttest ! -L '$SVN_TREE'/exec-2.sh &&\n-\tgit diff help $SVN_TREE/exec-2.sh\"\n+\tgit diff help '$SVN_TREE/exec-2.sh'\"\n \n if test \"$have_utf8\" = t\n then\n@@ -190,7 +190,7 @@ name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'\n GIT_SVN_ID=alt\n export GIT_SVN_ID\n test_expect_success \"$name\" \\\n-    \"git-svn init $svnrepo && git-svn fetch &&\n+    \"git-svn init '$svnrepo' && git-svn fetch &&\n      git rev-list --pretty=raw remotes/git-svn | grep ^tree | uniq > a &&\n      git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&\n      git diff a b\"\n@@ -220,16 +220,16 @@ test_expect_failure 'exit if remote refs are ambigious' \"\n         \"\n \n test_expect_failure 'exit if init-ing a would clobber a URL' \"\n-        svnadmin create ${PWD}/svnrepo2 &&\n-        svn mkdir -m 'mkdir bar' ${svnrepo}2/bar &&\n+        svnadmin create '${PWD}/svnrepo2' &&\n+        svn mkdir -m 'mkdir bar' '${svnrepo}2/bar' &&\n         git config --unset svn-remote.svn.fetch \\\n                                 '^bar:refs/remotes/git-svn$' &&\n-        git-svn init ${svnrepo}2/bar\n+        git-svn init '${svnrepo}2/bar'\n         \"\n \n test_expect_success \\\n   'init allows us to connect to another directory in the same repo' \"\n-        git-svn init --minimize-url -i bar $svnrepo/bar &&\n+        git-svn init --minimize-url -i bar '$svnrepo/bar' &&\n         git config --get svn-remote.svn.fetch \\\n                               '^bar:refs/remotes/bar$' &&\n         git config --get svn-remote.svn.fetch \\\ndiff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh\nindex 5aac644..a1c85e0 100755\n--- a/t/t9101-git-svn-props.sh\n+++ b/t/t9101-git-svn-props.sh\n@@ -52,7 +52,7 @@ EOF\n cd ..\n \n rm -rf import\n-test_expect_success 'checkout working copy from svn' \"svn co $svnrepo test_wc\"\n+test_expect_success 'checkout working copy from svn' \"svn co '$svnrepo' test_wc\"\n test_expect_success 'setup some commits to svn' \\\n \t'cd test_wc &&\n \t\techo Greetings >> kw.c &&\n@@ -66,7 +66,7 @@ test_expect_success 'setup some commits to svn' \\\n \t\tsvn commit -m \"Propset Id\" &&\n \tcd ..'\n \n-test_expect_success 'initialize git-svn' \"git-svn init $svnrepo\"\n+test_expect_success 'initialize git-svn' \"git-svn init '$svnrepo'\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n \n name='test svn:keywords ignoring'\n@@ -92,7 +92,7 @@ test_expect_success \"propset CR on crlf files\" \\\n test_expect_success 'fetch and pull latest from svn and checkout a new wc' \\\n \t\"git-svn fetch &&\n \t git pull . remotes/git-svn &&\n-\t svn co $svnrepo new_wc\"\n+\t svn co '$svnrepo' new_wc\"\n \n for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf\n do\ndiff --git a/t/t9102-git-svn-deep-rmdir.sh b/t/t9102-git-svn-deep-rmdir.sh\nindex 4e08083..99c8840 100755\n--- a/t/t9102-git-svn-deep-rmdir.sh\n+++ b/t/t9102-git-svn-deep-rmdir.sh\n@@ -9,12 +9,12 @@ test_expect_success 'initialize repo' \"\n \tmkdir -p deeply/nested/directory/number/2 &&\n \techo foo > deeply/nested/directory/number/1/file &&\n \techo foo > deeply/nested/directory/number/2/another &&\n-\tsvn import -m 'import for git-svn' . $svnrepo &&\n+\tsvn import -m 'import for git-svn' . '$svnrepo' &&\n \tcd ..\n \t\"\n \n test_expect_success 'mirror via git-svn' \"\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init '$svnrepo' &&\n \tgit-svn fetch &&\n \tgit checkout -f -b test-rmdir remotes/git-svn\n \t\"\n@@ -23,7 +23,7 @@ test_expect_success 'Try a commit on rmdir' \"\n \tgit rm -f deeply/nested/directory/number/2/another &&\n \tgit commit -a -m 'remove another' &&\n \tgit-svn set-tree --rmdir HEAD &&\n-\tsvn ls -R $svnrepo | grep ^deeply/nested/directory/number/1\n+\tsvn ls -R '$svnrepo' | grep ^deeply/nested/directory/number/1\n \t\"\n \n \ndiff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh\nindex 7ba7630..aa2bfe2 100755\n--- a/t/t9104-git-svn-follow-parent.sh\n+++ b/t/t9104-git-svn-follow-parent.sh\n@@ -11,9 +11,9 @@ test_expect_success 'initialize repo' \"\n \tcd import &&\n \tmkdir -p trunk &&\n \techo hello > trunk/readme &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . '$svnrepo' &&\n \tcd .. &&\n-\tsvn co $svnrepo wc &&\n+\tsvn co '$svnrepo' wc &&\n \tcd wc &&\n \techo world >> trunk/readme &&\n \tpoke trunk/readme &&\n@@ -27,7 +27,7 @@ test_expect_success 'initialize repo' \"\n \t\"\n \n test_expect_success 'init and fetch a moved directory' \"\n-\tgit-svn init --minimize-url -i thunk $svnrepo/thunk &&\n+\tgit-svn init --minimize-url -i thunk '$svnrepo/thunk' &&\n \tgit-svn fetch -i thunk &&\n \ttest \\\"\\`git rev-parse --verify refs/remotes/thunk@2\\`\\\" \\\n            = \\\"\\`git rev-parse --verify refs/remotes/thunk~1\\`\\\" &&\n@@ -38,7 +38,7 @@ test_expect_success 'init and fetch a moved directory' \"\n \t\"\n \n test_expect_success 'init and fetch from one svn-remote' \"\n-        git config svn-remote.svn.url $svnrepo &&\n+        git config svn-remote.svn.url '$svnrepo' &&\n         git config --add svn-remote.svn.fetch \\\n           trunk:refs/remotes/svn/trunk &&\n         git config --add svn-remote.svn.fetch \\\n@@ -52,9 +52,9 @@ test_expect_success 'init and fetch from one svn-remote' \"\n \n test_expect_success 'follow deleted parent' \"\n         (svn cp -m 'resurrecting trunk as junk' \\\n-               $svnrepo/trunk@2 $svnrepo/junk ||\n+               '$svnrepo/trunk@2' '$svnrepo'/junk ||\n          svn cp -m 'resurrecting trunk as junk' \\\n-               -r2 $svnrepo/trunk $svnrepo/junk) &&\n+               -r2 '$svnrepo/trunk' '$svnrepo/junk') &&\n         git config --add svn-remote.svn.fetch \\\n           junk:refs/remotes/svn/junk &&\n         git-svn fetch -i svn/thunk &&\n@@ -67,10 +67,10 @@ test_expect_success 'follow deleted parent' \"\n test_expect_success 'follow larger parent' \"\n         mkdir -p import/trunk/thunk/bump/thud &&\n         echo hi > import/trunk/thunk/bump/thud/file &&\n-        svn import -m 'import a larger parent' import $svnrepo/larger-parent &&\n-        svn cp -m 'hi' $svnrepo/larger-parent $svnrepo/another-larger &&\n+        svn import -m 'import a larger parent' import '$svnrepo/larger-parent' &&\n+        svn cp -m 'hi' '$svnrepo/larger-parent' '$svnrepo/another-larger' &&\n         git-svn init --minimize-url -i larger \\\n-          $svnrepo/another-larger/trunk/thunk/bump/thud &&\n+          '$svnrepo/another-larger/trunk/thunk/bump/thud' &&\n         git-svn fetch -i larger &&\n         git rev-parse --verify refs/remotes/larger &&\n         git rev-parse --verify \\\n@@ -83,23 +83,23 @@ test_expect_success 'follow larger parent' \"\n         \"\n \n test_expect_success 'follow higher-level parent' \"\n-        svn mkdir -m 'follow higher-level parent' $svnrepo/blob &&\n-        svn co $svnrepo/blob blob &&\n+        svn mkdir -m 'follow higher-level parent' '$svnrepo/blob' &&\n+        svn co '$svnrepo/blob' blob &&\n         cd blob &&\n                 echo hi > hi &&\n                 svn add hi &&\n                 svn commit -m 'hihi' &&\n                 cd ..\n-        svn mkdir -m 'new glob at top level' $svnrepo/glob &&\n-        svn mv -m 'move blob down a level' $svnrepo/blob $svnrepo/glob/blob &&\n-        git-svn init --minimize-url -i blob $svnrepo/glob/blob &&\n+        svn mkdir -m 'new glob at top level' '$svnrepo/glob' &&\n+        svn mv -m 'move blob down a level' '$svnrepo/blob' '$svnrepo/glob/blob' &&\n+        git-svn init --minimize-url -i blob '$svnrepo/glob/blob' &&\n         git-svn fetch -i blob\n         \"\n \n test_expect_success 'follow deleted directory' \"\n-\tsvn mv -m 'bye!' $svnrepo/glob/blob/hi $svnrepo/glob/blob/bye &&\n-\tsvn rm -m 'remove glob' $svnrepo/glob &&\n-\tgit-svn init --minimize-url -i glob $svnrepo/glob &&\n+\tsvn mv -m 'bye!' '$svnrepo/glob/blob/hi' '$svnrepo/glob/blob/bye' &&\n+\tsvn rm -m 'remove glob' '$svnrepo/glob' &&\n+\tgit-svn init --minimize-url -i glob '$svnrepo/glob' &&\n \tgit-svn fetch -i glob &&\n \ttest \\\"\\`git cat-file blob refs/remotes/glob:blob/bye\\`\\\" = hi &&\n \ttest \\\"\\`git ls-tree refs/remotes/glob | wc -l \\`\\\" -eq 1\n@@ -118,9 +118,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  echo 'bad delete test 2' > \\\n \t   import/trunk/subversion/bindings/swig/perl/another-larger &&\n \tcd import &&\n-\t  svn import -m 'r9270 test' . $svnrepo/r9270 &&\n+\t  svn import -m 'r9270 test' . '$svnrepo/r9270' &&\n \tcd .. &&\n-\tsvn co $svnrepo/r9270/trunk/subversion/bindings/swig/perl r9270 &&\n+\tsvn co '$svnrepo/r9270/trunk/subversion/bindings/swig/perl' r9270 &&\n \tcd r9270 &&\n \t  svn mkdir native &&\n \t  svn mv t native/t &&\n@@ -130,7 +130,7 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  svn commit -m 'reorg test' &&\n \tcd .. &&\n \tgit-svn init --minimize-url -i r9270-t \\\n-\t  $svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t &&\n+\t  '$svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t' &&\n \tgit-svn fetch -i r9270-t &&\n \ttest \\`git rev-list r9270-t | wc -l\\` -eq 2 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t~1\\`\\\" = \\\n@@ -138,9 +138,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t\"\n \n test_expect_success \"track initial change if it was only made to parent\" \"\n-\tsvn cp -m 'wheee!' $svnrepo/r9270/trunk $svnrepo/r9270/drunk &&\n+\tsvn cp -m 'wheee!' '$svnrepo/r9270/trunk' '$svnrepo/r9270/drunk' &&\n \tgit-svn init --minimize-url -i r9270-d \\\n-\t  $svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t &&\n+\t  '$svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t' &&\n \tgit-svn fetch -i r9270-d &&\n \ttest \\`git rev-list r9270-d | wc -l\\` -eq 3 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t\\`\\\" = \\\n@@ -150,7 +150,7 @@ test_expect_success \"track initial change if it was only made to parent\" \"\n \t\"\n \n test_expect_success \"track multi-parent paths\" \"\n-\tsvn cp -m 'resurrect /glob' $svnrepo/r9270 $svnrepo/glob &&\n+\tsvn cp -m 'resurrect /glob' '$svnrepo/r9270' '$svnrepo/glob' &&\n \tgit-svn multi-fetch &&\n \ttest \\`git cat-file commit refs/remotes/glob | \\\n \t       grep '^parent ' | wc -l\\` -eq 2\n@@ -161,8 +161,8 @@ test_expect_success \"multi-fetch continues to work\" \"\n \t\"\n \n test_expect_success \"multi-fetch works off a 'clean' repository\" \"\n-\trm -r $GIT_DIR/svn $GIT_DIR/refs/remotes $GIT_DIR/logs &&\n-\tmkdir $GIT_DIR/svn &&\n+\trm -r '$GIT_DIR/svn' '$GIT_DIR/refs/remotes' '$GIT_DIR/logs' &&\n+\tmkdir '$GIT_DIR/svn' &&\n \tgit-svn multi-fetch\n \t\"\n \ndiff --git a/t/t9105-git-svn-commit-diff.sh b/t/t9105-git-svn-commit-diff.sh\nindex 318e172..2e1eb75 100755\n--- a/t/t9105-git-svn-commit-diff.sh\n+++ b/t/t9105-git-svn-commit-diff.sh\n@@ -8,7 +8,7 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo hello > readme &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . '$svnrepo' &&\n \tcd .. &&\n \techo hello > readme &&\n \tgit update-index --add readme &&\n@@ -27,16 +27,16 @@ prev=`git rev-parse --verify HEAD^1`\n test_expect_success 'test the commit-diff command' \"\n \ttest -n '$prev' && test -n '$head' &&\n \tgit-svn commit-diff -r1 '$prev' '$head' '$svnrepo' &&\n-\tsvn co $svnrepo wc &&\n+\tsvn co '$svnrepo' wc &&\n \tcmp readme wc/readme\n \t\"\n \n test_expect_success 'commit-diff to a sub-directory (with git-svn config)' \"\n-\tsvn import -m 'sub-directory' import $svnrepo/subdir &&\n-\tgit-svn init --minimize-url $svnrepo/subdir &&\n+\tsvn import -m 'sub-directory' import '$svnrepo/subdir' &&\n+\tgit-svn init --minimize-url '$svnrepo/subdir' &&\n \tgit-svn fetch &&\n \tgit-svn commit-diff -r3 '$prev' '$head' &&\n-\tsvn cat $svnrepo/subdir/readme > readme.2 &&\n+\tsvn cat '$svnrepo/subdir/readme' > readme.2 &&\n \tcmp readme readme.2\n \t\"\n \ndiff --git a/t/t9106-git-svn-commit-diff-clobber.sh b/t/t9106-git-svn-commit-diff-clobber.sh\nindex 79b7968..bb42339 100755\n--- a/t/t9106-git-svn-commit-diff-clobber.sh\n+++ b/t/t9106-git-svn-commit-diff-clobber.sh\n@@ -8,14 +8,14 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo initial > file &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . '$svnrepo' &&\n \tcd .. &&\n \techo initial > file &&\n \tgit update-index --add file &&\n \tgit commit -a -m 'initial'\n \t\"\n test_expect_success 'commit change from svn side' \"\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co '$svnrepo' t.svn &&\n \tcd t.svn &&\n \techo second line from svn >> file &&\n \tpoke file &&\n@@ -27,7 +27,7 @@ test_expect_success 'commit change from svn side' \"\n test_expect_failure 'commit conflicting change from git' \"\n \techo second line from git >> file &&\n \tgit commit -a -m 'second line from git' &&\n-\tgit-svn commit-diff -r1 HEAD~1 HEAD $svnrepo\n+\tgit-svn commit-diff -r1 HEAD~1 HEAD '$svnrepo'\n \t\" || true\n \n test_expect_success 'commit complementing change from git' \"\n@@ -36,14 +36,14 @@ test_expect_success 'commit complementing change from git' \"\n \tgit commit -a -m 'second line from svn' &&\n \techo third line from git >> file &&\n \tgit commit -a -m 'third line from git' &&\n-\tgit-svn commit-diff -r2 HEAD~1 HEAD $svnrepo\n+\tgit-svn commit-diff -r2 HEAD~1 HEAD '$svnrepo'\n \t\"\n \n test_expect_failure 'dcommit fails to commit because of conflict' \"\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init '$svnrepo' &&\n \tgit-svn fetch &&\n \tgit reset --hard refs/remotes/git-svn &&\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co '$svnrepo' t.svn &&\n \tcd t.svn &&\n \techo fourth line from svn >> file &&\n \tpoke file &&\n@@ -67,7 +67,7 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' \"\n \t\"\n \n test_expect_success 'commit another change from svn side' \"\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co '$svnrepo' t.svn &&\n \tcd t.svn &&\n \t\techo third line from svn >> file &&\n \t\tpoke file &&\ndiff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh\nindex 67fdf70..90bf786 100755\n--- a/t/t9107-git-svn-migrate.sh\n+++ b/t/t9107-git-svn-migrate.sh\n@@ -4,7 +4,7 @@ test_description='git-svn metadata migrations from previous versions'\n . ./lib-git-svn.sh\n \n test_expect_success 'setup old-looking metadata' \"\n-\tcp $GIT_DIR/config $GIT_DIR/config-old-git-svn &&\n+\tcp '$GIT_DIR/config' '$GIT_DIR/config-old-git-svn' &&\n \tmkdir import &&\n \tcd import &&\n \t\tfor i in trunk branches/a branches/b \\\n@@ -12,13 +12,13 @@ test_expect_success 'setup old-looking metadata' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . $svnrepo\n+\t\tsvn import -m test . '$svnrepo'\n \t\tcd .. &&\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init '$svnrepo' &&\n \tgit-svn fetch &&\n-\tmv $GIT_DIR/svn/* $GIT_DIR/ &&\n-\tmv $GIT_DIR/svn/.metadata $GIT_DIR/ &&\n-\trmdir $GIT_DIR/svn &&\n+\tmv '$GIT_DIR'/svn/* '$GIT_DIR/' &&\n+\tmv '$GIT_DIR/svn/.metadata' '$GIT_DIR/' &&\n+\trmdir '$GIT_DIR/svn' &&\n \tgit update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref -d refs/remotes/git-svn refs/remotes/git-svn\n@@ -28,20 +28,20 @@ head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`\n test_expect_success 'git-svn-HEAD is a real HEAD' \"test -n '$head'\"\n \n test_expect_success 'initialize old-style (v0) git-svn layout' \"\n-\tmkdir -p $GIT_DIR/git-svn/info $GIT_DIR/svn/info &&\n-\techo $svnrepo > $GIT_DIR/git-svn/info/url &&\n-\techo $svnrepo > $GIT_DIR/svn/info/url &&\n+\tmkdir -p '$GIT_DIR/git-svn/info' '$GIT_DIR/svn/info' &&\n+\techo '$svnrepo' > '$GIT_DIR/git-svn/info/url' &&\n+\techo '$svnrepo' > '$GIT_DIR/svn/info/url' &&\n \tgit-svn migrate &&\n-\t! test -d $GIT_DIR/git-svn &&\n+\t! test -d '$GIT_DIR/git-svn' &&\n \tgit rev-parse --verify refs/remotes/git-svn^0 &&\n \tgit rev-parse --verify refs/remotes/svn^0 &&\n-\ttest \\`git config --get svn-remote.svn.url\\` = '$svnrepo' &&\n+\ttest \\\"\\`git config --get svn-remote.svn.url\\`\\\" = \\\"$svnrepo\\\" &&\n \ttest \\`git config --get svn-remote.svn.fetch\\` = \\\n              ':refs/remotes/git-svn'\n \t\"\n \n test_expect_success 'initialize a multi-repository repo' \"\n-\tgit-svn init $svnrepo -T trunk -t tags -b branches &&\n+\tgit-svn init '$svnrepo' -T trunk -t tags -b branches &&\n \tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n \tgrep '^trunk:refs/remotes/trunk$' fetch.out &&\n \ttest -n \\\"\\`git config --get svn-remote.svn.branches \\\n@@ -76,14 +76,14 @@ test_expect_success 'multi-fetch works on partial urls + paths' \"\n test_expect_success 'migrate --minimize on old inited layout' \"\n \tgit config --unset-all svn-remote.svn.fetch &&\n \tgit config --unset-all svn-remote.svn.url &&\n-\trm -rf $GIT_DIR/svn &&\n+\trm -rf '$GIT_DIR/svn' &&\n \tfor i in \\`cat fetch.out\\`; do\n \t\tpath=\\`expr \\$i : '\\\\([^:]*\\\\):.*$'\\`\n \t\tref=\\`expr \\$i : '[^:]*:refs/remotes/\\\\(.*\\\\)$'\\`\n \t\tif test -z \\\"\\$ref\\\"; then continue; fi\n \t\tif test -n \\\"\\$path\\\"; then path=\\\"/\\$path\\\"; fi\n-\t\t( mkdir -p $GIT_DIR/svn/\\$ref/info/ &&\n-\t\techo $svnrepo\\$path > $GIT_DIR/svn/\\$ref/info/url ) || exit 1;\n+\t\t( mkdir -p '$GIT_DIR'/svn/\\$ref/info/ &&\n+\t\techo '$svnrepo'\\$path > '$GIT_DIR'/svn/\\$ref/info/url ) || exit 1;\n \tdone &&\n \tgit-svn migrate --minimize &&\n \ttest -z \\\"\\`git config -l |grep -v '^svn-remote\\.git-svn\\.'\\`\\\" &&\n@@ -99,13 +99,13 @@ test_expect_success 'migrate --minimize on old inited layout' \"\n \n test_expect_success  \".rev_db auto-converted to .rev_db.UUID\" \"\n \tgit-svn fetch -i trunk &&\n-\texpect=$GIT_DIR/svn/trunk/.rev_db.* &&\n+\texpect=\\\"\\`find \\\"\\$GIT_DIR\\\"/svn/trunk/ -name '.rev_db.*'\\`\\\" &&\n \ttest -n \\\"\\$expect\\\" &&\n-\tmv \\$expect $GIT_DIR/svn/trunk/.rev_db &&\n+\tmv \\\"\\$expect\\\" \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db &&\n \tgit-svn fetch -i trunk &&\n-\ttest -L $GIT_DIR/svn/trunk/.rev_db &&\n-\ttest -f \\$expect &&\n-\tcmp \\$expect $GIT_DIR/svn/trunk/.rev_db\n+\ttest -L \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db &&\n+\ttest -f \\\"\\$expect\\\" &&\n+\tcmp \\\"\\$expect\\\" \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db\n \t\"\n \n test_done\ndiff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh\nindex db4344c..c6dc0ef 100755\n--- a/t/t9108-git-svn-glob.sh\n+++ b/t/t9108-git-svn-glob.sh\n@@ -14,8 +14,8 @@ test_expect_success 'test refspec globbing' \"\n \tmkdir -p trunk/src/a trunk/src/b trunk/doc &&\n \techo 'hello world' > trunk/src/a/readme &&\n \techo 'goodbye world' > trunk/src/b/readme &&\n-\tsvn import -m 'initial' trunk $svnrepo/trunk &&\n-\tsvn co $svnrepo tmp &&\n+\tsvn import -m 'initial' trunk '$svnrepo/trunk' &&\n+\tsvn co '$svnrepo' tmp &&\n \tcd tmp &&\n \t\tmkdir branches tags &&\n \t\tsvn add branches tags &&\n@@ -38,7 +38,7 @@ test_expect_success 'test refspec globbing' \"\n \t\tpoke tags/end/src/b/readme &&\n \t\tsvn commit -m 'nothing to see here'\n \t\tcd .. &&\n-\tgit config --add svn-remote.svn.url $svnrepo &&\n+\tgit config --add svn-remote.svn.url '$svnrepo' &&\n \tgit config --add svn-remote.svn.fetch \\\n \t                 'trunk/src/a:refs/remotes/trunk' &&\n \tgit config --add svn-remote.svn.branches \\\n@@ -60,7 +60,7 @@ echo nothing to see here >> expect.two\n cat expect.end >> expect.two\n \n test_expect_success 'test left-hand-side only globbing' \"\n-\tgit config --add svn-remote.two.url $svnrepo &&\n+\tgit config --add svn-remote.two.url '$svnrepo' &&\n \tgit config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&\n \tgit config --add svn-remote.two.branches \\\n \t                 'branches/*:refs/remotes/two/branches/*' &&\ndiff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh\nindex 6235af4..d4ab01f 100755\n--- a/t/t9110-git-svn-use-svm-props.sh\n+++ b/t/t9110-git-svn-use-svm-props.sh\n@@ -8,11 +8,11 @@ test_description='git-svn useSvmProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svm repo' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9110/svm.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar $svnrepo/mirror/arr &&\n-\tgit-svn init --minimize-url -R argh -i dir $svnrepo/mirror/argh &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9110/svm.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar '$svnrepo/mirror/arr' &&\n+\tgit-svn init --minimize-url -R argh -i dir '$svnrepo/mirror/argh' &&\n \tgit-svn init --minimize-url -R argh -i e \\\n-\t  $svnrepo/mirror/argh/a/b/c/d/e &&\n+\t  '$svnrepo/mirror/argh/a/b/c/d/e' &&\n \tgit config svn.useSvmProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9111-git-svn-use-svnsync-props.sh b/t/t9111-git-svn-use-svnsync-props.sh\nindex ec7dedd..936f023 100755\n--- a/t/t9111-git-svn-use-svnsync-props.sh\n+++ b/t/t9111-git-svn-use-svnsync-props.sh\n@@ -8,10 +8,10 @@ test_description='git-svn useSvnsyncProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svnsync repo' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9111/svnsync.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar $svnrepo/bar &&\n-\tgit-svn init --minimize-url -R argh -i dir $svnrepo/dir &&\n-\tgit-svn init --minimize-url -R argh -i e $svnrepo/dir/a/b/c/d/e &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9111/svnsync.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar '$svnrepo/bar' &&\n+\tgit-svn init --minimize-url -R argh -i dir '$svnrepo/dir' &&\n+\tgit-svn init --minimize-url -R argh -i e '$svnrepo/dir/a/b/c/d/e' &&\n \tgit config svn.useSvnsyncProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9112-git-svn-md5less-file.sh b/t/t9112-git-svn-md5less-file.sh\nindex 08313bb..b095583 100755\n--- a/t/t9112-git-svn-md5less-file.sh\n+++ b/t/t9112-git-svn-md5less-file.sh\n@@ -38,8 +38,8 @@ PROPS-END\n \n EOF\n \n-test_expect_success 'load svn dumpfile' \"svnadmin load $rawsvnrepo < dumpfile.svn\"\n+test_expect_success 'load svn dumpfile' \"svnadmin load '$rawsvnrepo' < dumpfile.svn\"\n \n-test_expect_success 'initialize git-svn' \"git-svn init $svnrepo\"\n+test_expect_success 'initialize git-svn' \"git-svn init '$svnrepo'\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n test_done\ndiff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh\nindex 9ef0db9..0088c75 100755\n--- a/t/t9113-git-svn-dcommit-new-file.sh\n+++ b/t/t9113-git-svn-dcommit-new-file.sh\n@@ -15,14 +15,14 @@ test_description='git-svn dcommit new files over svn:// test'\n \n start_svnserve () {\n \tsvnserve --listen-port $SVNSERVE_PORT \\\n-\t         --root $rawsvnrepo \\\n+\t         --root '$rawsvnrepo' \\\n \t         --listen-once \\\n \t         --listen-host 127.0.0.1 &\n }\n \n test_expect_success 'start tracking an empty repo' \"\n-\tsvn mkdir -m 'empty dir' $svnrepo/empty-dir &&\n-\techo anon-access = write >> $rawsvnrepo/conf/svnserve.conf &&\n+\tsvn mkdir -m 'empty dir' '$svnrepo/empty-dir' &&\n+\techo anon-access = write >> '$rawsvnrepo/conf/svnserve.conf' &&\n \tstart_svnserve &&\n \tgit svn init svn://127.0.0.1:$SVNSERVE_PORT &&\n \tgit svn fetch\ndiff --git a/t/t9114-git-svn-dcommit-merge.sh b/t/t9114-git-svn-dcommit-merge.sh\nindex d6ca955..64ec7fd 100755\n--- a/t/t9114-git-svn-dcommit-merge.sh\n+++ b/t/t9114-git-svn-dcommit-merge.sh\n@@ -35,7 +35,7 @@ EOF\n }\n \n test_expect_success 'setup svn repository' \"\n-\tsvn co $svnrepo mysvnwork &&\n+\tsvn co '$svnrepo' mysvnwork &&\n \tmkdir -p mysvnwork/trunk &&\n \tcd mysvnwork &&\n \t\tbig_text_block >> trunk/README &&\n@@ -45,7 +45,7 @@ test_expect_success 'setup svn repository' \"\n \t\"\n \n test_expect_success 'setup git mirror and merge' \"\n-\tgit svn init $svnrepo -t tags -T trunk -b branches &&\n+\tgit svn init '$svnrepo' -t tags -T trunk -b branches &&\n \tgit svn fetch &&\n \tgit checkout --track -b svn remotes/trunk &&\n \tgit checkout -b merge &&\ndiff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh\nindex 182299c..653578d 100755\n--- a/t/t9115-git-svn-dcommit-funky-renames.sh\n+++ b/t/t9115-git-svn-dcommit-funky-renames.sh\n@@ -8,12 +8,12 @@ test_description='git-svn dcommit can commit renames of files with ugly names'\n . ./lib-git-svn.sh\n \n test_expect_success 'load repository with strange names' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&\n+\tsvnadmin load -q '$rawsvnrepo' < ../t9115/funky-names.dump &&\n \tstart_httpd\n \t\"\n \n test_expect_success 'init and fetch repository' \"\n-\tgit svn init $svnrepo &&\n+\tgit svn init '$svnrepo' &&\n \tgit svn fetch &&\n \tgit reset --hard git-svn\n \t\"\ndiff --git a/t/t9116-git-svn-log.sh b/t/t9116-git-svn-log.sh\nindex 0d4e6b3..70c0c5f 100755\n--- a/t/t9116-git-svn-log.sh\n+++ b/t/t9116-git-svn-log.sh\n@@ -14,9 +14,9 @@ test_expect_success 'setup repository and import' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . $svnrepo\n+\t\tsvn import -m test . '$svnrepo'\n \t\tcd .. &&\n-\tgit-svn init $svnrepo -T trunk -b branches -t tags &&\n+\tgit-svn init '$svnrepo' -T trunk -b branches -t tags &&\n \tgit-svn fetch &&\n \tgit reset --hard trunk &&\n \techo bye >> README &&\ndiff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb-standalone-no-errors.sh\nindex 642b836..b90e78c 100755\n--- a/t/t9500-gitweb-standalone-no-errors.sh\n+++ b/t/t9500-gitweb-standalone-no-errors.sh\n@@ -45,13 +45,13 @@ gitweb_run () {\n \texport QUERY_STRING=\"\"$1\"\"\n \texport PATH_INFO=\"\"$2\"\"\n \n-\texport GITWEB_CONFIG=$(pwd)/gitweb_config.perl\n+\texport GITWEB_CONFIG=\"$(pwd)/gitweb_config.perl\"\n \n \t# some of git commands write to STDERR on error, but this is not\n \t# written to web server logs, so we are not interested in that:\n \t# we are interested only in properly formatted errors/warnings\n \trm -f gitweb.log &&\n-\tperl -- $(pwd)/../../gitweb/gitweb.perl \\\n+\tperl -- \"$(pwd)/../../gitweb/gitweb.perl\" \\\n \t\t>/dev/null 2>gitweb.log &&\n \tif grep -q -s \"^[[]\" gitweb.log >/dev/null; then false; else true; fi\n \ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex cc1253c..a68415f 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -229,7 +229,7 @@ test_create_repo () {\n \trepo=\"$1\"\n \tmkdir \"$repo\"\n \tcd \"$repo\" || error \"Cannot setup test environment\"\n-\t\"$GIT_EXEC_PATH/git\" init --template=$GIT_EXEC_PATH/templates/blt/ >/dev/null 2>&1 ||\n+\t\"$GIT_EXEC_PATH/git\" init --template=\"$GIT_EXEC_PATH/templates/blt/\" >/dev/null 2>&1 ||\n \terror \"cannot run git init -- have you built things yet?\"\n \tmv .git/hooks .git/hooks-disabled\n \tcd \"$owd\"\n-- \n1.5.3.1\n"},{"id":"55862","messageId":"11924540291922-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"4711486B.1050301@op5.se","subject":"[PATCH 3/3] Fix apostrophe quoting in tests","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-15T13:13:49Z","receivedAt":"2007-10-15T13:13:49Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"From: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n\nDouble-quoting all paths so the tests can be run from inside a directory named \"Joe's git\"\n\nSigned-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n---\n t/t9100-git-svn-basic.sh                 |   54 +++++++++++++++---------------\n t/t9101-git-svn-props.sh                 |    6 ++--\n t/t9102-git-svn-deep-rmdir.sh            |    6 ++--\n t/t9104-git-svn-follow-parent.sh         |   50 ++++++++++++++--------------\n t/t9105-git-svn-commit-diff.sh           |   12 +++---\n t/t9106-git-svn-commit-diff-clobber.sh   |   14 ++++----\n t/t9107-git-svn-migrate.sh               |   28 ++++++++--------\n t/t9108-git-svn-glob.sh                  |    8 ++--\n t/t9110-git-svn-use-svm-props.sh         |    8 ++--\n t/t9111-git-svn-use-svnsync-props.sh     |    8 ++--\n t/t9112-git-svn-md5less-file.sh          |    4 +-\n t/t9113-git-svn-dcommit-new-file.sh      |    6 ++--\n t/t9114-git-svn-dcommit-merge.sh         |    4 +-\n t/t9115-git-svn-dcommit-funky-renames.sh |    4 +-\n t/t9116-git-svn-log.sh                   |    4 +-\n 15 files changed, 108 insertions(+), 108 deletions(-)\n\ndiff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh\nindex c3585da..1d802a8 100755\n--- a/t/t9100-git-svn-basic.sh\n+++ b/t/t9100-git-svn-basic.sh\n@@ -31,16 +31,16 @@ test_expect_success \\\n \techo 'zzz' > bar/zzz &&\n \techo '#!/bin/sh' > exec.sh &&\n \tchmod +x exec.sh &&\n-\tsvn import -m 'import for git-svn' . '$svnrepo' >/dev/null &&\n+\tsvn import -m 'import for git-svn' . \\\"$svnrepo\\\" >/dev/null &&\n \tcd .. &&\n \trm -rf import &&\n-\tgit-svn init '$svnrepo'\"\n+\tgit-svn init \\\"$svnrepo\\\"\"\n \n test_expect_success \\\n     'import an SVN revision into git' \\\n     'git-svn fetch'\n \n-test_expect_success \"checkout from svn\" \"svn co '$svnrepo' '$SVN_TREE'\"\n+test_expect_success \"checkout from svn\" \"svn co \\\"$svnrepo\\\" \\\"$SVN_TREE\\\"\"\n \n name='try a deep --rmdir with a commit'\n test_expect_success \"$name\" \"\n@@ -51,8 +51,8 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -d '$SVN_TREE'/dir && test ! -d '$SVN_TREE'/dir/a\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -d \\\"$SVN_TREE\\\"/dir && test ! -d \\\"$SVN_TREE\\\"/dir/a\"\n \n \n name='detect node change from file to directory #1'\n@@ -69,7 +69,7 @@ test_expect_failure \"$name\" \"\n \n name='detect node change from directory to file #1'\n test_expect_failure \"$name\" \"\n-\trm -rf dir '$GIT_DIR'/index &&\n+\trm -rf dir \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch2 remotes/git-svn &&\n \tmv bar/zzz zzz &&\n \trm -rf bar &&\n@@ -83,7 +83,7 @@ test_expect_failure \"$name\" \"\n \n name='detect node change from file to directory #2'\n test_expect_failure \"$name\" \"\n-\trm -f '$GIT_DIR'/index &&\n+\trm -f \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch3 remotes/git-svn &&\n \trm bar/zzz &&\n \tgit update-index --remove bar/zzz &&\n@@ -97,7 +97,7 @@ test_expect_failure \"$name\" \"\n \n name='detect node change from directory to file #2'\n test_expect_failure \"$name\" \"\n-\trm -f '$GIT_DIR'/index &&\n+\trm -f \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch4 remotes/git-svn &&\n \trm -rf dir &&\n \tgit update-index --remove -- dir/file &&\n@@ -111,15 +111,15 @@ test_expect_failure \"$name\" \"\n \n name='remove executable bit from a file'\n test_expect_success \"$name\" \"\n-\trm -f '$GIT_DIR'/index &&\n+\trm -f \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch5 remotes/git-svn &&\n \tchmod -x exec.sh &&\n \tgit update-index exec.sh &&\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest ! -x '$SVN_TREE'/exec.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest ! -x \\\"$SVN_TREE\\\"/exec.sh\"\n \n \n name='add executable bit back file'\n@@ -129,8 +129,8 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -x '$SVN_TREE'/exec.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -x \\\"$SVN_TREE\\\"/exec.sh\"\n \n \n name='executable file becomes a symlink to bar/zzz (file)'\n@@ -141,8 +141,8 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -L '$SVN_TREE'/exec.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -L \\\"$SVN_TREE\\\"/exec.sh\"\n \n name='new symlink is added to a file that was also just made executable'\n \n@@ -153,9 +153,9 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -x '$SVN_TREE'/bar/zzz &&\n-\ttest -L '$SVN_TREE'/exec-2.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -x \\\"$SVN_TREE\\\"/bar/zzz &&\n+\ttest -L \\\"$SVN_TREE\\\"/exec-2.sh\"\n \n name='modify a symlink to become a file'\n test_expect_success \"$name\" \"\n@@ -166,10 +166,10 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -f '$SVN_TREE'/exec-2.sh &&\n-\ttest ! -L '$SVN_TREE'/exec-2.sh &&\n-\tgit diff help '$SVN_TREE/exec-2.sh'\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -f \\\"$SVN_TREE\\\"/exec-2.sh &&\n+\ttest ! -L \\\"$SVN_TREE\\\"/exec-2.sh &&\n+\tgit diff help \\\"$SVN_TREE\\\"/exec-2.sh\"\n \n if test \"$have_utf8\" = t\n then\n@@ -190,7 +190,7 @@ name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'\n GIT_SVN_ID=alt\n export GIT_SVN_ID\n test_expect_success \"$name\" \\\n-    \"git-svn init '$svnrepo' && git-svn fetch &&\n+    \"git-svn init \\\"$svnrepo\\\" && git-svn fetch &&\n      git rev-list --pretty=raw remotes/git-svn | grep ^tree | uniq > a &&\n      git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&\n      git diff a b\"\n@@ -220,16 +220,16 @@ test_expect_failure 'exit if remote refs are ambigious' \"\n         \"\n \n test_expect_failure 'exit if init-ing a would clobber a URL' \"\n-        svnadmin create '${PWD}/svnrepo2' &&\n-        svn mkdir -m 'mkdir bar' '${svnrepo}2/bar' &&\n+        svnadmin create \\\"${PWD}/svnrepo2\\\" &&\n+        svn mkdir -m 'mkdir bar' \\\"${svnrepo}2/bar\\\" &&\n         git config --unset svn-remote.svn.fetch \\\n                                 '^bar:refs/remotes/git-svn$' &&\n-        git-svn init '${svnrepo}2/bar'\n+        git-svn init \\\"${svnrepo}2/bar\\\"\n         \"\n \n test_expect_success \\\n   'init allows us to connect to another directory in the same repo' \"\n-        git-svn init --minimize-url -i bar '$svnrepo/bar' &&\n+        git-svn init --minimize-url -i bar \\\"$svnrepo/bar\\\" &&\n         git config --get svn-remote.svn.fetch \\\n                               '^bar:refs/remotes/bar$' &&\n         git config --get svn-remote.svn.fetch \\\ndiff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh\nindex a1c85e0..e741bfe 100755\n--- a/t/t9101-git-svn-props.sh\n+++ b/t/t9101-git-svn-props.sh\n@@ -52,7 +52,7 @@ EOF\n cd ..\n \n rm -rf import\n-test_expect_success 'checkout working copy from svn' \"svn co '$svnrepo' test_wc\"\n+test_expect_success 'checkout working copy from svn' \"svn co \\\"$svnrepo\\\" test_wc\"\n test_expect_success 'setup some commits to svn' \\\n \t'cd test_wc &&\n \t\techo Greetings >> kw.c &&\n@@ -66,7 +66,7 @@ test_expect_success 'setup some commits to svn' \\\n \t\tsvn commit -m \"Propset Id\" &&\n \tcd ..'\n \n-test_expect_success 'initialize git-svn' \"git-svn init '$svnrepo'\"\n+test_expect_success 'initialize git-svn' \"git-svn init \\\"$svnrepo\\\"\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n \n name='test svn:keywords ignoring'\n@@ -92,7 +92,7 @@ test_expect_success \"propset CR on crlf files\" \\\n test_expect_success 'fetch and pull latest from svn and checkout a new wc' \\\n \t\"git-svn fetch &&\n \t git pull . remotes/git-svn &&\n-\t svn co '$svnrepo' new_wc\"\n+\t svn co \\\"$svnrepo\\\" new_wc\"\n \n for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf\n do\ndiff --git a/t/t9102-git-svn-deep-rmdir.sh b/t/t9102-git-svn-deep-rmdir.sh\nindex 99c8840..e3af319 100755\n--- a/t/t9102-git-svn-deep-rmdir.sh\n+++ b/t/t9102-git-svn-deep-rmdir.sh\n@@ -9,12 +9,12 @@ test_expect_success 'initialize repo' \"\n \tmkdir -p deeply/nested/directory/number/2 &&\n \techo foo > deeply/nested/directory/number/1/file &&\n \techo foo > deeply/nested/directory/number/2/another &&\n-\tsvn import -m 'import for git-svn' . '$svnrepo' &&\n+\tsvn import -m 'import for git-svn' . \\\"$svnrepo\\\" &&\n \tcd ..\n \t\"\n \n test_expect_success 'mirror via git-svn' \"\n-\tgit-svn init '$svnrepo' &&\n+\tgit-svn init \\\"$svnrepo\\\" &&\n \tgit-svn fetch &&\n \tgit checkout -f -b test-rmdir remotes/git-svn\n \t\"\n@@ -23,7 +23,7 @@ test_expect_success 'Try a commit on rmdir' \"\n \tgit rm -f deeply/nested/directory/number/2/another &&\n \tgit commit -a -m 'remove another' &&\n \tgit-svn set-tree --rmdir HEAD &&\n-\tsvn ls -R '$svnrepo' | grep ^deeply/nested/directory/number/1\n+\tsvn ls -R \\\"$svnrepo\\\" | grep ^deeply/nested/directory/number/1\n \t\"\n \n \ndiff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh\nindex aa2bfe2..a422afa 100755\n--- a/t/t9104-git-svn-follow-parent.sh\n+++ b/t/t9104-git-svn-follow-parent.sh\n@@ -11,9 +11,9 @@ test_expect_success 'initialize repo' \"\n \tcd import &&\n \tmkdir -p trunk &&\n \techo hello > trunk/readme &&\n-\tsvn import -m 'initial' . '$svnrepo' &&\n+\tsvn import -m 'initial' . \\\"$svnrepo\\\" &&\n \tcd .. &&\n-\tsvn co '$svnrepo' wc &&\n+\tsvn co \\\"$svnrepo\\\" wc &&\n \tcd wc &&\n \techo world >> trunk/readme &&\n \tpoke trunk/readme &&\n@@ -27,7 +27,7 @@ test_expect_success 'initialize repo' \"\n \t\"\n \n test_expect_success 'init and fetch a moved directory' \"\n-\tgit-svn init --minimize-url -i thunk '$svnrepo/thunk' &&\n+\tgit-svn init --minimize-url -i thunk \\\"$svnrepo/thunk\\\" &&\n \tgit-svn fetch -i thunk &&\n \ttest \\\"\\`git rev-parse --verify refs/remotes/thunk@2\\`\\\" \\\n            = \\\"\\`git rev-parse --verify refs/remotes/thunk~1\\`\\\" &&\n@@ -38,7 +38,7 @@ test_expect_success 'init and fetch a moved directory' \"\n \t\"\n \n test_expect_success 'init and fetch from one svn-remote' \"\n-        git config svn-remote.svn.url '$svnrepo' &&\n+        git config svn-remote.svn.url \\\"$svnrepo\\\" &&\n         git config --add svn-remote.svn.fetch \\\n           trunk:refs/remotes/svn/trunk &&\n         git config --add svn-remote.svn.fetch \\\n@@ -52,9 +52,9 @@ test_expect_success 'init and fetch from one svn-remote' \"\n \n test_expect_success 'follow deleted parent' \"\n         (svn cp -m 'resurrecting trunk as junk' \\\n-               '$svnrepo/trunk@2' '$svnrepo'/junk ||\n+               \\\"$svnrepo/trunk@2\\\" \\\"$svnrepo\\\"/junk ||\n          svn cp -m 'resurrecting trunk as junk' \\\n-               -r2 '$svnrepo/trunk' '$svnrepo/junk') &&\n+               -r2 \\\"$svnrepo/trunk\\\" \\\"$svnrepo/junk\\\") &&\n         git config --add svn-remote.svn.fetch \\\n           junk:refs/remotes/svn/junk &&\n         git-svn fetch -i svn/thunk &&\n@@ -67,10 +67,10 @@ test_expect_success 'follow deleted parent' \"\n test_expect_success 'follow larger parent' \"\n         mkdir -p import/trunk/thunk/bump/thud &&\n         echo hi > import/trunk/thunk/bump/thud/file &&\n-        svn import -m 'import a larger parent' import '$svnrepo/larger-parent' &&\n-        svn cp -m 'hi' '$svnrepo/larger-parent' '$svnrepo/another-larger' &&\n+        svn import -m 'import a larger parent' import \\\"$svnrepo/larger-parent\\\" &&\n+        svn cp -m 'hi' \\\"$svnrepo/larger-parent\\\" \\\"$svnrepo/another-larger\\\" &&\n         git-svn init --minimize-url -i larger \\\n-          '$svnrepo/another-larger/trunk/thunk/bump/thud' &&\n+          \\\"$svnrepo/another-larger/trunk/thunk/bump/thud\\\" &&\n         git-svn fetch -i larger &&\n         git rev-parse --verify refs/remotes/larger &&\n         git rev-parse --verify \\\n@@ -83,23 +83,23 @@ test_expect_success 'follow larger parent' \"\n         \"\n \n test_expect_success 'follow higher-level parent' \"\n-        svn mkdir -m 'follow higher-level parent' '$svnrepo/blob' &&\n-        svn co '$svnrepo/blob' blob &&\n+        svn mkdir -m 'follow higher-level parent' \\\"$svnrepo/blob\\\" &&\n+        svn co \\\"$svnrepo/blob\\\" blob &&\n         cd blob &&\n                 echo hi > hi &&\n                 svn add hi &&\n                 svn commit -m 'hihi' &&\n                 cd ..\n-        svn mkdir -m 'new glob at top level' '$svnrepo/glob' &&\n-        svn mv -m 'move blob down a level' '$svnrepo/blob' '$svnrepo/glob/blob' &&\n-        git-svn init --minimize-url -i blob '$svnrepo/glob/blob' &&\n+        svn mkdir -m 'new glob at top level' \\\"$svnrepo/glob\\\" &&\n+        svn mv -m 'move blob down a level' \\\"$svnrepo/blob\\\" \\\"$svnrepo/glob/blob\\\" &&\n+        git-svn init --minimize-url -i blob \\\"$svnrepo/glob/blob\\\" &&\n         git-svn fetch -i blob\n         \"\n \n test_expect_success 'follow deleted directory' \"\n-\tsvn mv -m 'bye!' '$svnrepo/glob/blob/hi' '$svnrepo/glob/blob/bye' &&\n-\tsvn rm -m 'remove glob' '$svnrepo/glob' &&\n-\tgit-svn init --minimize-url -i glob '$svnrepo/glob' &&\n+\tsvn mv -m 'bye!' \\\"$svnrepo/glob/blob/hi\\\" \\\"$svnrepo/glob/blob/bye\\\" &&\n+\tsvn rm -m 'remove glob' \\\"$svnrepo/glob\\\" &&\n+\tgit-svn init --minimize-url -i glob \\\"$svnrepo/glob\\\" &&\n \tgit-svn fetch -i glob &&\n \ttest \\\"\\`git cat-file blob refs/remotes/glob:blob/bye\\`\\\" = hi &&\n \ttest \\\"\\`git ls-tree refs/remotes/glob | wc -l \\`\\\" -eq 1\n@@ -118,9 +118,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  echo 'bad delete test 2' > \\\n \t   import/trunk/subversion/bindings/swig/perl/another-larger &&\n \tcd import &&\n-\t  svn import -m 'r9270 test' . '$svnrepo/r9270' &&\n+\t  svn import -m 'r9270 test' . \\\"$svnrepo/r9270\\\" &&\n \tcd .. &&\n-\tsvn co '$svnrepo/r9270/trunk/subversion/bindings/swig/perl' r9270 &&\n+\tsvn co \\\"$svnrepo/r9270/trunk/subversion/bindings/swig/perl\\\" r9270 &&\n \tcd r9270 &&\n \t  svn mkdir native &&\n \t  svn mv t native/t &&\n@@ -130,7 +130,7 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  svn commit -m 'reorg test' &&\n \tcd .. &&\n \tgit-svn init --minimize-url -i r9270-t \\\n-\t  '$svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t' &&\n+\t  \\\"$svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t\\\" &&\n \tgit-svn fetch -i r9270-t &&\n \ttest \\`git rev-list r9270-t | wc -l\\` -eq 2 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t~1\\`\\\" = \\\n@@ -138,9 +138,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t\"\n \n test_expect_success \"track initial change if it was only made to parent\" \"\n-\tsvn cp -m 'wheee!' '$svnrepo/r9270/trunk' '$svnrepo/r9270/drunk' &&\n+\tsvn cp -m 'wheee!' \\\"$svnrepo/r9270/trunk\\\" \\\"$svnrepo/r9270/drunk\\\" &&\n \tgit-svn init --minimize-url -i r9270-d \\\n-\t  '$svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t' &&\n+\t  \\\"$svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t\\\" &&\n \tgit-svn fetch -i r9270-d &&\n \ttest \\`git rev-list r9270-d | wc -l\\` -eq 3 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t\\`\\\" = \\\n@@ -150,7 +150,7 @@ test_expect_success \"track initial change if it was only made to parent\" \"\n \t\"\n \n test_expect_success \"track multi-parent paths\" \"\n-\tsvn cp -m 'resurrect /glob' '$svnrepo/r9270' '$svnrepo/glob' &&\n+\tsvn cp -m 'resurrect /glob' \\\"$svnrepo/r9270\\\" \\\"$svnrepo/glob\\\" &&\n \tgit-svn multi-fetch &&\n \ttest \\`git cat-file commit refs/remotes/glob | \\\n \t       grep '^parent ' | wc -l\\` -eq 2\n@@ -161,8 +161,8 @@ test_expect_success \"multi-fetch continues to work\" \"\n \t\"\n \n test_expect_success \"multi-fetch works off a 'clean' repository\" \"\n-\trm -r '$GIT_DIR/svn' '$GIT_DIR/refs/remotes' '$GIT_DIR/logs' &&\n-\tmkdir '$GIT_DIR/svn' &&\n+\trm -r \\\"$GIT_DIR/svn\\\" \\\"$GIT_DIR/refs/remotes\\\" \\\"$GIT_DIR/logs\\\" &&\n+\tmkdir \\\"$GIT_DIR/svn\\\" &&\n \tgit-svn multi-fetch\n \t\"\n \ndiff --git a/t/t9105-git-svn-commit-diff.sh b/t/t9105-git-svn-commit-diff.sh\nindex 2e1eb75..9cc38d3 100755\n--- a/t/t9105-git-svn-commit-diff.sh\n+++ b/t/t9105-git-svn-commit-diff.sh\n@@ -8,7 +8,7 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo hello > readme &&\n-\tsvn import -m 'initial' . '$svnrepo' &&\n+\tsvn import -m 'initial' . \\\"$svnrepo\\\" &&\n \tcd .. &&\n \techo hello > readme &&\n \tgit update-index --add readme &&\n@@ -26,17 +26,17 @@ prev=`git rev-parse --verify HEAD^1`\n \n test_expect_success 'test the commit-diff command' \"\n \ttest -n '$prev' && test -n '$head' &&\n-\tgit-svn commit-diff -r1 '$prev' '$head' '$svnrepo' &&\n-\tsvn co '$svnrepo' wc &&\n+\tgit-svn commit-diff -r1 '$prev' '$head' \\\"$svnrepo\\\" &&\n+\tsvn co \\\"$svnrepo\\\" wc &&\n \tcmp readme wc/readme\n \t\"\n \n test_expect_success 'commit-diff to a sub-directory (with git-svn config)' \"\n-\tsvn import -m 'sub-directory' import '$svnrepo/subdir' &&\n-\tgit-svn init --minimize-url '$svnrepo/subdir' &&\n+\tsvn import -m 'sub-directory' import \\\"$svnrepo/subdir\\\" &&\n+\tgit-svn init --minimize-url \\\"$svnrepo/subdir\\\" &&\n \tgit-svn fetch &&\n \tgit-svn commit-diff -r3 '$prev' '$head' &&\n-\tsvn cat '$svnrepo/subdir/readme' > readme.2 &&\n+\tsvn cat \\\"$svnrepo/subdir/readme\\\" > readme.2 &&\n \tcmp readme readme.2\n \t\"\n \ndiff --git a/t/t9106-git-svn-commit-diff-clobber.sh b/t/t9106-git-svn-commit-diff-clobber.sh\nindex bb42339..892ca55 100755\n--- a/t/t9106-git-svn-commit-diff-clobber.sh\n+++ b/t/t9106-git-svn-commit-diff-clobber.sh\n@@ -8,14 +8,14 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo initial > file &&\n-\tsvn import -m 'initial' . '$svnrepo' &&\n+\tsvn import -m 'initial' . \\\"$svnrepo\\\" &&\n \tcd .. &&\n \techo initial > file &&\n \tgit update-index --add file &&\n \tgit commit -a -m 'initial'\n \t\"\n test_expect_success 'commit change from svn side' \"\n-\tsvn co '$svnrepo' t.svn &&\n+\tsvn co \\\"$svnrepo\\\" t.svn &&\n \tcd t.svn &&\n \techo second line from svn >> file &&\n \tpoke file &&\n@@ -27,7 +27,7 @@ test_expect_success 'commit change from svn side' \"\n test_expect_failure 'commit conflicting change from git' \"\n \techo second line from git >> file &&\n \tgit commit -a -m 'second line from git' &&\n-\tgit-svn commit-diff -r1 HEAD~1 HEAD '$svnrepo'\n+\tgit-svn commit-diff -r1 HEAD~1 HEAD \\\"$svnrepo\\\"\n \t\" || true\n \n test_expect_success 'commit complementing change from git' \"\n@@ -36,14 +36,14 @@ test_expect_success 'commit complementing change from git' \"\n \tgit commit -a -m 'second line from svn' &&\n \techo third line from git >> file &&\n \tgit commit -a -m 'third line from git' &&\n-\tgit-svn commit-diff -r2 HEAD~1 HEAD '$svnrepo'\n+\tgit-svn commit-diff -r2 HEAD~1 HEAD \\\"$svnrepo\\\"\n \t\"\n \n test_expect_failure 'dcommit fails to commit because of conflict' \"\n-\tgit-svn init '$svnrepo' &&\n+\tgit-svn init \\\"$svnrepo\\\" &&\n \tgit-svn fetch &&\n \tgit reset --hard refs/remotes/git-svn &&\n-\tsvn co '$svnrepo' t.svn &&\n+\tsvn co \\\"$svnrepo\\\" t.svn &&\n \tcd t.svn &&\n \techo fourth line from svn >> file &&\n \tpoke file &&\n@@ -67,7 +67,7 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' \"\n \t\"\n \n test_expect_success 'commit another change from svn side' \"\n-\tsvn co '$svnrepo' t.svn &&\n+\tsvn co \\\"$svnrepo\\\" t.svn &&\n \tcd t.svn &&\n \t\techo third line from svn >> file &&\n \t\tpoke file &&\ndiff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh\nindex 90bf786..59e8f0d 100755\n--- a/t/t9107-git-svn-migrate.sh\n+++ b/t/t9107-git-svn-migrate.sh\n@@ -4,7 +4,7 @@ test_description='git-svn metadata migrations from previous versions'\n . ./lib-git-svn.sh\n \n test_expect_success 'setup old-looking metadata' \"\n-\tcp '$GIT_DIR/config' '$GIT_DIR/config-old-git-svn' &&\n+\tcp \\\"$GIT_DIR/config\\\" \\\"$GIT_DIR/config-old-git-svn\\\" &&\n \tmkdir import &&\n \tcd import &&\n \t\tfor i in trunk branches/a branches/b \\\n@@ -12,13 +12,13 @@ test_expect_success 'setup old-looking metadata' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . '$svnrepo'\n+\t\tsvn import -m test . \\\"$svnrepo\\\"\n \t\tcd .. &&\n-\tgit-svn init '$svnrepo' &&\n+\tgit-svn init \\\"$svnrepo\\\" &&\n \tgit-svn fetch &&\n-\tmv '$GIT_DIR'/svn/* '$GIT_DIR/' &&\n-\tmv '$GIT_DIR/svn/.metadata' '$GIT_DIR/' &&\n-\trmdir '$GIT_DIR/svn' &&\n+\tmv \\\"$GIT_DIR\\\"/svn/* \\\"$GIT_DIR/\\\" &&\n+\tmv \\\"$GIT_DIR/svn/.metadata\\\" \\\"$GIT_DIR/\\\" &&\n+\trmdir \\\"$GIT_DIR/svn\\\" &&\n \tgit update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref -d refs/remotes/git-svn refs/remotes/git-svn\n@@ -28,11 +28,11 @@ head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`\n test_expect_success 'git-svn-HEAD is a real HEAD' \"test -n '$head'\"\n \n test_expect_success 'initialize old-style (v0) git-svn layout' \"\n-\tmkdir -p '$GIT_DIR/git-svn/info' '$GIT_DIR/svn/info' &&\n-\techo '$svnrepo' > '$GIT_DIR/git-svn/info/url' &&\n-\techo '$svnrepo' > '$GIT_DIR/svn/info/url' &&\n+\tmkdir -p \\\"$GIT_DIR/git-svn/info\\\" \\\"$GIT_DIR/svn/info\\\" &&\n+\techo \\\"$svnrepo\\\" > \\\"$GIT_DIR/git-svn/info/url\\\" &&\n+\techo \\\"$svnrepo\\\" > \\\"$GIT_DIR/svn/info/url\\\" &&\n \tgit-svn migrate &&\n-\t! test -d '$GIT_DIR/git-svn' &&\n+\t! test -d \\\"$GIT_DIR/git-svn\\\" &&\n \tgit rev-parse --verify refs/remotes/git-svn^0 &&\n \tgit rev-parse --verify refs/remotes/svn^0 &&\n \ttest \\\"\\`git config --get svn-remote.svn.url\\`\\\" = \\\"$svnrepo\\\" &&\n@@ -41,7 +41,7 @@ test_expect_success 'initialize old-style (v0) git-svn layout' \"\n \t\"\n \n test_expect_success 'initialize a multi-repository repo' \"\n-\tgit-svn init '$svnrepo' -T trunk -t tags -b branches &&\n+\tgit-svn init \\\"$svnrepo\\\" -T trunk -t tags -b branches &&\n \tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n \tgrep '^trunk:refs/remotes/trunk$' fetch.out &&\n \ttest -n \\\"\\`git config --get svn-remote.svn.branches \\\n@@ -76,14 +76,14 @@ test_expect_success 'multi-fetch works on partial urls + paths' \"\n test_expect_success 'migrate --minimize on old inited layout' \"\n \tgit config --unset-all svn-remote.svn.fetch &&\n \tgit config --unset-all svn-remote.svn.url &&\n-\trm -rf '$GIT_DIR/svn' &&\n+\trm -rf \\\"$GIT_DIR/svn\\\" &&\n \tfor i in \\`cat fetch.out\\`; do\n \t\tpath=\\`expr \\$i : '\\\\([^:]*\\\\):.*$'\\`\n \t\tref=\\`expr \\$i : '[^:]*:refs/remotes/\\\\(.*\\\\)$'\\`\n \t\tif test -z \\\"\\$ref\\\"; then continue; fi\n \t\tif test -n \\\"\\$path\\\"; then path=\\\"/\\$path\\\"; fi\n-\t\t( mkdir -p '$GIT_DIR'/svn/\\$ref/info/ &&\n-\t\techo '$svnrepo'\\$path > '$GIT_DIR'/svn/\\$ref/info/url ) || exit 1;\n+\t\t( mkdir -p \\\"$GIT_DIR\\\"/svn/\\$ref/info/ &&\n+\t\techo \\\"$svnrepo\\\"\\$path > \\\"$GIT_DIR\\\"/svn/\\$ref/info/url ) || exit 1;\n \tdone &&\n \tgit-svn migrate --minimize &&\n \ttest -z \\\"\\`git config -l |grep -v '^svn-remote\\.git-svn\\.'\\`\\\" &&\ndiff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh\nindex c6dc0ef..eb039ef 100755\n--- a/t/t9108-git-svn-glob.sh\n+++ b/t/t9108-git-svn-glob.sh\n@@ -14,8 +14,8 @@ test_expect_success 'test refspec globbing' \"\n \tmkdir -p trunk/src/a trunk/src/b trunk/doc &&\n \techo 'hello world' > trunk/src/a/readme &&\n \techo 'goodbye world' > trunk/src/b/readme &&\n-\tsvn import -m 'initial' trunk '$svnrepo/trunk' &&\n-\tsvn co '$svnrepo' tmp &&\n+\tsvn import -m 'initial' trunk \\\"$svnrepo/trunk\\\" &&\n+\tsvn co \\\"$svnrepo\\\" tmp &&\n \tcd tmp &&\n \t\tmkdir branches tags &&\n \t\tsvn add branches tags &&\n@@ -38,7 +38,7 @@ test_expect_success 'test refspec globbing' \"\n \t\tpoke tags/end/src/b/readme &&\n \t\tsvn commit -m 'nothing to see here'\n \t\tcd .. &&\n-\tgit config --add svn-remote.svn.url '$svnrepo' &&\n+\tgit config --add svn-remote.svn.url \\\"$svnrepo\\\" &&\n \tgit config --add svn-remote.svn.fetch \\\n \t                 'trunk/src/a:refs/remotes/trunk' &&\n \tgit config --add svn-remote.svn.branches \\\n@@ -60,7 +60,7 @@ echo nothing to see here >> expect.two\n cat expect.end >> expect.two\n \n test_expect_success 'test left-hand-side only globbing' \"\n-\tgit config --add svn-remote.two.url '$svnrepo' &&\n+\tgit config --add svn-remote.two.url \\\"$svnrepo\\\" &&\n \tgit config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&\n \tgit config --add svn-remote.two.branches \\\n \t                 'branches/*:refs/remotes/two/branches/*' &&\ndiff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh\nindex d4ab01f..9df60ba 100755\n--- a/t/t9110-git-svn-use-svm-props.sh\n+++ b/t/t9110-git-svn-use-svm-props.sh\n@@ -8,11 +8,11 @@ test_description='git-svn useSvmProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svm repo' \"\n-\tsvnadmin load -q '$rawsvnrepo' < ../t9110/svm.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar '$svnrepo/mirror/arr' &&\n-\tgit-svn init --minimize-url -R argh -i dir '$svnrepo/mirror/argh' &&\n+\tsvnadmin load -q \\\"$rawsvnrepo\\\" < ../t9110/svm.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar \\\"$svnrepo/mirror/arr\\\" &&\n+\tgit-svn init --minimize-url -R argh -i dir \\\"$svnrepo/mirror/argh\\\" &&\n \tgit-svn init --minimize-url -R argh -i e \\\n-\t  '$svnrepo/mirror/argh/a/b/c/d/e' &&\n+\t  \\\"$svnrepo/mirror/argh/a/b/c/d/e\\\" &&\n \tgit config svn.useSvmProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9111-git-svn-use-svnsync-props.sh b/t/t9111-git-svn-use-svnsync-props.sh\nindex 936f023..e3693eb 100755\n--- a/t/t9111-git-svn-use-svnsync-props.sh\n+++ b/t/t9111-git-svn-use-svnsync-props.sh\n@@ -8,10 +8,10 @@ test_description='git-svn useSvnsyncProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svnsync repo' \"\n-\tsvnadmin load -q '$rawsvnrepo' < ../t9111/svnsync.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar '$svnrepo/bar' &&\n-\tgit-svn init --minimize-url -R argh -i dir '$svnrepo/dir' &&\n-\tgit-svn init --minimize-url -R argh -i e '$svnrepo/dir/a/b/c/d/e' &&\n+\tsvnadmin load -q \\\"$rawsvnrepo\\\" < ../t9111/svnsync.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar \\\"$svnrepo/bar\\\" &&\n+\tgit-svn init --minimize-url -R argh -i dir \\\"$svnrepo/dir\\\" &&\n+\tgit-svn init --minimize-url -R argh -i e \\\"$svnrepo/dir/a/b/c/d/e\\\" &&\n \tgit config svn.useSvnsyncProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9112-git-svn-md5less-file.sh b/t/t9112-git-svn-md5less-file.sh\nindex b095583..124120c 100755\n--- a/t/t9112-git-svn-md5less-file.sh\n+++ b/t/t9112-git-svn-md5less-file.sh\n@@ -38,8 +38,8 @@ PROPS-END\n \n EOF\n \n-test_expect_success 'load svn dumpfile' \"svnadmin load '$rawsvnrepo' < dumpfile.svn\"\n+test_expect_success 'load svn dumpfile' \"svnadmin load \\\"$rawsvnrepo\\\" < dumpfile.svn\"\n \n-test_expect_success 'initialize git-svn' \"git-svn init '$svnrepo'\"\n+test_expect_success 'initialize git-svn' \"git-svn init \\\"$svnrepo\\\"\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n test_done\ndiff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh\nindex 0088c75..150d7f0 100755\n--- a/t/t9113-git-svn-dcommit-new-file.sh\n+++ b/t/t9113-git-svn-dcommit-new-file.sh\n@@ -15,14 +15,14 @@ test_description='git-svn dcommit new files over svn:// test'\n \n start_svnserve () {\n \tsvnserve --listen-port $SVNSERVE_PORT \\\n-\t         --root '$rawsvnrepo' \\\n+\t         --root \"$rawsvnrepo\" \\\n \t         --listen-once \\\n \t         --listen-host 127.0.0.1 &\n }\n \n test_expect_success 'start tracking an empty repo' \"\n-\tsvn mkdir -m 'empty dir' '$svnrepo/empty-dir' &&\n-\techo anon-access = write >> '$rawsvnrepo/conf/svnserve.conf' &&\n+\tsvn mkdir -m 'empty dir' \\\"$svnrepo/empty-dir\\\" &&\n+\techo anon-access = write >> \\\"$rawsvnrepo/conf/svnserve.conf\\\" &&\n \tstart_svnserve &&\n \tgit svn init svn://127.0.0.1:$SVNSERVE_PORT &&\n \tgit svn fetch\ndiff --git a/t/t9114-git-svn-dcommit-merge.sh b/t/t9114-git-svn-dcommit-merge.sh\nindex 64ec7fd..ffe8859 100755\n--- a/t/t9114-git-svn-dcommit-merge.sh\n+++ b/t/t9114-git-svn-dcommit-merge.sh\n@@ -35,7 +35,7 @@ EOF\n }\n \n test_expect_success 'setup svn repository' \"\n-\tsvn co '$svnrepo' mysvnwork &&\n+\tsvn co \\\"$svnrepo\\\" mysvnwork &&\n \tmkdir -p mysvnwork/trunk &&\n \tcd mysvnwork &&\n \t\tbig_text_block >> trunk/README &&\n@@ -45,7 +45,7 @@ test_expect_success 'setup svn repository' \"\n \t\"\n \n test_expect_success 'setup git mirror and merge' \"\n-\tgit svn init '$svnrepo' -t tags -T trunk -b branches &&\n+\tgit svn init \\\"$svnrepo\\\" -t tags -T trunk -b branches &&\n \tgit svn fetch &&\n \tgit checkout --track -b svn remotes/trunk &&\n \tgit checkout -b merge &&\ndiff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh\nindex 653578d..0681ffa 100755\n--- a/t/t9115-git-svn-dcommit-funky-renames.sh\n+++ b/t/t9115-git-svn-dcommit-funky-renames.sh\n@@ -8,12 +8,12 @@ test_description='git-svn dcommit can commit renames of files with ugly names'\n . ./lib-git-svn.sh\n \n test_expect_success 'load repository with strange names' \"\n-\tsvnadmin load -q '$rawsvnrepo' < ../t9115/funky-names.dump &&\n+\tsvnadmin load -q \\\"$rawsvnrepo\\\" < ../t9115/funky-names.dump &&\n \tstart_httpd\n \t\"\n \n test_expect_success 'init and fetch repository' \"\n-\tgit svn init '$svnrepo' &&\n+\tgit svn init \\\"$svnrepo\\\" &&\n \tgit svn fetch &&\n \tgit reset --hard git-svn\n \t\"\ndiff --git a/t/t9116-git-svn-log.sh b/t/t9116-git-svn-log.sh\nindex 70c0c5f..890b5f1 100755\n--- a/t/t9116-git-svn-log.sh\n+++ b/t/t9116-git-svn-log.sh\n@@ -14,9 +14,9 @@ test_expect_success 'setup repository and import' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . '$svnrepo'\n+\t\tsvn import -m test . \\\"$svnrepo\\\"\n \t\tcd .. &&\n-\tgit-svn init '$svnrepo' -T trunk -b branches -t tags &&\n+\tgit-svn init \\\"$svnrepo\\\" -T trunk -b branches -t tags &&\n \tgit-svn fetch &&\n \tgit reset --hard trunk &&\n \techo bye >> README &&\n-- \n1.5.3.1\n"},{"id":"55864","messageId":"47136D92.8060104@viscovery.net","threadId":"10239","inReplyTo":"11924540292687-git-send-email-maillist@steelskies.com","subject":"Re: [PATCH 1/3] Fixing path quoting in git-rebase","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-15T13:39:30Z","receivedAt":"2007-10-15T13:39:30Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> -\teval GITHEAD_$hd='\"$(cat $dotest/onto_name)\"'\n> +\teval GITHEAD_$hd='\"$(cat \\\"$dotest/onto_name\\\")\"'\n\nI believe this is not correct. It should be this way:\n\n\teval GITHEAD_$hd='$(cat \"$dotest/onto_name\")'\n\nYou can test it with a conflicting git-rebase -m. It only affects what the \nconflict markers look like. The test suite does not test it.\n\nThe rest looks good.\n\n-- Hannes\n"},{"id":"55865","messageId":"47136F71.1050107@viscovery.net","threadId":"10239","inReplyTo":"11924540291536-git-send-email-maillist@steelskies.com","subject":"Re: [PATCH 2/3] Quoting paths in tests","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-15T13:47:29Z","receivedAt":"2007-10-15T13:47:29Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> -\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n> +\tsvn import -m 'import for git-svn' . '$svnrepo' >/dev/null &&\n>  \tcd .. &&\n>  \trm -rf import &&\n> -\tgit-svn init $svnrepo\"\n> +\tgit-svn init '$svnrepo'\"\n\nI don't see the point in changing an incorrect quoting to a different \nincorrect quoting that you fix up in a follow-up patch. It's *two* large \npatches to review instead of just one. I'm stopping the review here.\n\n-- Hannes\n"},{"id":"55866","messageId":"8977E4C2-2C13-4C52-8FD9-CEEB5AA85B70@steelskies.com","threadId":"10239","inReplyTo":"47136F71.1050107@viscovery.net","subject":"Re: [PATCH 2/3] Quoting paths in tests","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-15T14:00:38Z","receivedAt":"2007-10-15T14:00:38Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"On 15 Oct 2007, at 14:47, Johannes Sixt wrote:\n\n> Jonathan del Strother schrieb:\n>> -\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n>> +\tsvn import -m 'import for git-svn' . '$svnrepo' >/dev/null &&\n>> \tcd .. &&\n>> \trm -rf import &&\n>> -\tgit-svn init $svnrepo\"\n>> +\tgit-svn init '$svnrepo'\"\n>\n> I don't see the point in changing an incorrect quoting to a  \n> different incorrect quoting that you fix up in a follow-up patch.  \n> It's *two* large patches to review instead of just one. I'm stopping  \n> the review here.\n\nIf we want to support apostrophed paths in tests, I'll flatten 2 & 3  \ninto a single patch.  I thought I'd make the apostrophe part optional  \nsince there seemed to be some resistance to having to bother about  \nquoting & escaping in tests..\n"},{"id":"55870","messageId":"86d4vgmq50.fsf@lola.quinscape.zz","threadId":"10239","inReplyTo":"47136F71.1050107@viscovery.net","subject":"Re: [PATCH 2/3] Quoting paths in tests","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-15T14:03:23Z","receivedAt":"2007-10-15T14:03:23Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Johannes Sixt <j.sixt@viscovery.net> writes:\n\n> Jonathan del Strother schrieb:\n>> -\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n>> +\tsvn import -m 'import for git-svn' . '$svnrepo' >/dev/null &&\n>>  \tcd .. &&\n>>  \trm -rf import &&\n>> -\tgit-svn init $svnrepo\"\n>> +\tgit-svn init '$svnrepo'\"\n>\n> I don't see the point in changing an incorrect quoting to a different\n> incorrect quoting that you fix up in a follow-up patch. It's *two*\n> large patches to review instead of just one. I'm stopping the review\n> here.\n\nSince I consider it unlikely that Jonathan is making your life harder\non purpose, it might be somewhat more helpful to offer submission\nadvice:\n\nJonathan, try\n\ngit rebase -i HEAD~3\n\nor so in order to consolidate the last 3 patches you did.  Interactive\nrebase is one useful manner of munging history until it looks\nreasonably nice for submission.  One major point of git's distributed\noperation is that one can clean up the development history locally\nbefore handing things out.\n\nThat makes the project repositories cleaner to understand.\n\n-- \nDavid Kastrup\n"},{"id":"55869","messageId":"47137689.9050907@viscovery.net","threadId":"10239","inReplyTo":"8977E4C2-2C13-4C52-8FD9-CEEB5AA85B70@steelskies.com","subject":"Re: [PATCH 2/3] Quoting paths in tests","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-15T14:17:45Z","receivedAt":"2007-10-15T14:17:45Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> On 15 Oct 2007, at 14:47, Johannes Sixt wrote:\n>> I don't see the point in changing an incorrect quoting to a different \n>> incorrect quoting that you fix up in a follow-up patch. It's *two* \n>> large patches to review instead of just one. I'm stopping the review \n>> here.\n> \n> If we want to support apostrophed paths in tests,\n\nI could ask, \"if we want to support paths with blanks in tests\", so...\n\n> I'll flatten 2 & 3 \n> into a single patch.  I thought I'd make the apostrophe part optional \n> since there seemed to be some resistance to having to bother about \n> quoting & escaping in tests..\n\nYou could also make a patch that reverses the quoting in t9100-* (and \nprobably others), i.e. instead of\n\n\t\"... '$foo'...\" (which is incorrect)\nor\n\t\"... \\\"$foo\\\"...\"\nmake it\n\t'... \"$foo\" ...'\n\nIt will be a large patch, too, but the result should be easier to read.\n\n-- Hannes\n"},{"id":"56224","messageId":"B495731E-C854-450B-943B-B96248B8F609@steelskies.com","threadId":"10239","inReplyTo":"47136D92.8060104@viscovery.net","subject":"Re: [PATCH 1/3] Fixing path quoting in git-rebase","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-17T09:14:01Z","receivedAt":"2007-10-17T09:14:01Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"On 15 Oct 2007, at 14:39, Johannes Sixt wrote:\n\n> Jonathan del Strother schrieb:\n>> -\teval GITHEAD_$hd='\"$(cat $dotest/onto_name)\"'\n>> +\teval GITHEAD_$hd='\"$(cat \\\"$dotest/onto_name\\\")\"'\n>\n> I believe this is not correct. It should be this way:\n>\n> \teval GITHEAD_$hd='$(cat \"$dotest/onto_name\")'\n>\n> You can test it with a conflicting git-rebase -m. It only affects  \n> what the conflict markers look like. The test suite does not test it.\n\nThanks for catching that.  I'll post revised patches this morning\n"},{"id":"56228","messageId":"11926134961610-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"B495731E-C854-450B-943B-B96248B8F609@steelskies.com","subject":"[PATCH] Quoting paths, take 3","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-17T09:31:34Z","receivedAt":"2007-10-17T09:31:34Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"\nThese patches attempt to fix things up for people who like to have awkward directory paths including spaces & apostrophes.  First patch fixes git-rebase (all other git tools handle these paths fine), second patch fixes up the tests so they can be run from spaced directories.\nThird time lucky?\n"},{"id":"56226","messageId":"11926134961549-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"11926134961610-git-send-email-maillist@steelskies.com","subject":"[PATCH 1/2] Fixing path quoting in git-rebase","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-17T09:31:35Z","receivedAt":"2007-10-17T09:31:35Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"From: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n\ngit-rebase used to fail when run from a path with a space in.\n\nSigned-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n---\n git-rebase.sh |   26 +++++++++++++-------------\n 1 files changed, 13 insertions(+), 13 deletions(-)\n\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex 1583402..224cca9 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -59,7 +59,7 @@ continue_merge () {\n \t\tdie \"$RESOLVEMSG\"\n \tfi\n \n-\tcmt=`cat $dotest/current`\n+\tcmt=`cat \"$dotest/current\"`\n \tif ! git diff-index --quiet HEAD\n \tthen\n \t\tif ! git-commit -C \"$cmt\"\n@@ -84,14 +84,14 @@ continue_merge () {\n }\n \n call_merge () {\n-\tcmt=\"$(cat $dotest/cmt.$1)\"\n+\tcmt=\"$(cat \"$dotest/cmt.$1\")\"\n \techo \"$cmt\" > \"$dotest/current\"\n \thd=$(git rev-parse --verify HEAD)\n \tcmt_name=$(git symbolic-ref HEAD)\n-\tmsgnum=$(cat $dotest/msgnum)\n-\tend=$(cat $dotest/end)\n+\tmsgnum=$(cat \"$dotest/msgnum\")\n+\tend=$(cat \"$dotest/end\")\n \teval GITHEAD_$cmt='\"${cmt_name##refs/heads/}~$(($end - $msgnum))\"'\n-\teval GITHEAD_$hd='\"$(cat $dotest/onto_name)\"'\n+\teval GITHEAD_$hd='$(cat \"$dotest/onto_name\")'\n \texport GITHEAD_$cmt GITHEAD_$hd\n \tgit-merge-$strategy \"$cmt^\" -- \"$hd\" \"$cmt\"\n \trv=$?\n@@ -140,10 +140,10 @@ do\n \t\t}\n \t\tif test -d \"$dotest\"\n \t\tthen\n-\t\t\tprev_head=\"`cat $dotest/prev_head`\"\n-\t\t\tend=\"`cat $dotest/end`\"\n-\t\t\tmsgnum=\"`cat $dotest/msgnum`\"\n-\t\t\tonto=\"`cat $dotest/onto`\"\n+\t\t\tprev_head=$(cat \"$dotest/prev_head\")\n+\t\t\tend=$(cat \"$dotest/end\")\n+\t\t\tmsgnum=$(cat \"$dotest/msgnum\")\n+\t\t\tonto=$(cat \"$dotest/onto\")\n \t\t\tcontinue_merge\n \t\t\twhile test \"$msgnum\" -le \"$end\"\n \t\t\tdo\n@@ -160,11 +160,11 @@ do\n \t\tif test -d \"$dotest\"\n \t\tthen\n \t\t\tgit rerere clear\n-\t\t\tprev_head=\"`cat $dotest/prev_head`\"\n-\t\t\tend=\"`cat $dotest/end`\"\n-\t\t\tmsgnum=\"`cat $dotest/msgnum`\"\n+\t\t\tprev_head=$(cat \"$dotest/prev_head\")\n+\t\t\tend=$(cat \"$dotest/end\")\n+\t\t\tmsgnum=$(cat \"$dotest/msgnum\")\n \t\t\tmsgnum=$(($msgnum + 1))\n-\t\t\tonto=\"`cat $dotest/onto`\"\n+\t\t\tonto=$(cat \"$dotest/onto\")\n \t\t\twhile test \"$msgnum\" -le \"$end\"\n \t\t\tdo\n \t\t\t\tcall_merge \"$msgnum\"\n-- \n1.5.3.1\n"},{"id":"56227","messageId":"11926134961275-git-send-email-maillist@steelskies.com","threadId":"10239","inReplyTo":"11926134961549-git-send-email-maillist@steelskies.com","subject":"[PATCH 2/2] Quoting paths in tests","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-17T09:31:36Z","receivedAt":"2007-10-17T09:31:36Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"From: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n\nDouble-quoting all paths so the tests can be run from inside directories with spaces and apostrophes\n\nSigned-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n---\n t/lib-git-svn.sh                         |    2 +-\n t/t1020-subdirectory.sh                  |   22 ++++++------\n t/t3050-subprojects-fetch.sh             |    2 +-\n t/t3404-rebase-interactive.sh            |    2 +-\n t/t5500-fetch-pack.sh                    |    2 +-\n t/t5700-clone-reference.sh               |    2 +-\n t/t7003-filter-branch.sh                 |    2 +-\n t/t7501-commit.sh                        |    4 +-\n t/t9100-git-svn-basic.sh                 |   54 +++++++++++++++---------------\n t/t9101-git-svn-props.sh                 |    6 ++--\n t/t9102-git-svn-deep-rmdir.sh            |    6 ++--\n t/t9104-git-svn-follow-parent.sh         |   50 ++++++++++++++--------------\n t/t9105-git-svn-commit-diff.sh           |   12 +++---\n t/t9106-git-svn-commit-diff-clobber.sh   |   14 ++++----\n t/t9107-git-svn-migrate.sh               |   40 +++++++++++-----------\n t/t9108-git-svn-glob.sh                  |    8 ++--\n t/t9110-git-svn-use-svm-props.sh         |    8 ++--\n t/t9111-git-svn-use-svnsync-props.sh     |    8 ++--\n t/t9112-git-svn-md5less-file.sh          |    4 +-\n t/t9113-git-svn-dcommit-new-file.sh      |    6 ++--\n t/t9114-git-svn-dcommit-merge.sh         |    4 +-\n t/t9115-git-svn-dcommit-funky-renames.sh |    4 +-\n t/t9116-git-svn-log.sh                   |    4 +-\n t/t9500-gitweb-standalone-no-errors.sh   |    4 +-\n t/test-lib.sh                            |    2 +-\n 25 files changed, 136 insertions(+), 136 deletions(-)\n\ndiff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh\nindex 8d4a447..cde3053 100644\n--- a/t/lib-git-svn.sh\n+++ b/t/lib-git-svn.sh\n@@ -25,7 +25,7 @@ perl -w -e \"\n use SVN::Core;\n use SVN::Repos;\n \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n-system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or exit(41);\n+system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or exit(41);\n \" >&3 2>&4\n x=$?\n if test $x -ne 0\ndiff --git a/t/t1020-subdirectory.sh b/t/t1020-subdirectory.sh\nindex b9cef34..5ed7fa4 100755\n--- a/t/t1020-subdirectory.sh\n+++ b/t/t1020-subdirectory.sh\n@@ -21,7 +21,7 @@ LF='\n '\n \n test_expect_success 'update-index and ls-files' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit update-index --add one &&\n \tcase \"`git ls-files`\" in\n \tone) echo ok one ;;\n@@ -41,7 +41,7 @@ test_expect_success 'update-index and ls-files' '\n '\n \n test_expect_success 'cat-file' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \ttwo=`git ls-files -s dir/two` &&\n \ttwo=`expr \"$two\" : \"[0-7]* \\\\([0-9a-f]*\\\\)\"` &&\n \techo \"$two\" &&\n@@ -54,7 +54,7 @@ test_expect_success 'cat-file' '\n rm -f actual dir/actual\n \n test_expect_success 'diff-files' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \techo a >>one &&\n \techo d >>dir/two &&\n \tcase \"`git diff-files --name-only`\" in\n@@ -74,7 +74,7 @@ test_expect_success 'diff-files' '\n '\n \n test_expect_success 'write-tree' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \ttop=`git write-tree` &&\n \techo $top &&\n \tcd dir &&\n@@ -84,7 +84,7 @@ test_expect_success 'write-tree' '\n '\n \n test_expect_success 'checkout-index' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit checkout-index -f -u one &&\n \tcmp one original.one &&\n \tcd dir &&\n@@ -93,7 +93,7 @@ test_expect_success 'checkout-index' '\n '\n \n test_expect_success 'read-tree' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \trm -f one dir/two &&\n \ttree=`git write-tree` &&\n \tgit read-tree --reset -u \"$tree\" &&\n@@ -107,27 +107,27 @@ test_expect_success 'read-tree' '\n '\n \n test_expect_success 'no file/rev ambiguity check inside .git' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit commit -a -m 1 &&\n-\tcd $HERE/.git &&\n+\tcd \"$HERE/.git\" &&\n \tgit show -s HEAD\n '\n \n test_expect_success 'no file/rev ambiguity check inside a bare repo' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit clone -s --bare .git foo.git &&\n \tcd foo.git && GIT_DIR=. git show -s HEAD\n '\n \n # This still does not work as it should...\n : test_expect_success 'no file/rev ambiguity check inside a bare repo' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \tgit clone -s --bare .git foo.git &&\n \tcd foo.git && git show -s HEAD\n '\n \n test_expect_success 'detection should not be fooled by a symlink' '\n-\tcd $HERE &&\n+\tcd \"$HERE\" &&\n \trm -fr foo.git &&\n \tgit clone -s .git another &&\n \tln -s another yetanother &&\ndiff --git a/t/t3050-subprojects-fetch.sh b/t/t3050-subprojects-fetch.sh\nindex 34f26a8..4b74cc6 100755\n--- a/t/t3050-subprojects-fetch.sh\n+++ b/t/t3050-subprojects-fetch.sh\n@@ -20,7 +20,7 @@ test_expect_success setup '\n '\n \n test_expect_success clone '\n-\tgit clone file://`pwd`/.git cloned &&\n+\tgit clone \"file://`pwd`/.git\" cloned &&\n \t(git rev-parse HEAD; git ls-files -s) >expected &&\n \t(\n \t\tcd cloned &&\ndiff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh\nindex 1113904..aa86042 100755\n--- a/t/t3404-rebase-interactive.sh\n+++ b/t/t3404-rebase-interactive.sh\n@@ -92,7 +92,7 @@ done\n EOF\n \n chmod a+x fake-editor.sh\n-VISUAL=\"$(pwd)/fake-editor.sh\"\n+VISUAL=\"\\\"$(pwd)/fake-editor.sh\\\"\"\n export VISUAL\n \n test_expect_success 'no changes are a nop' '\ndiff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh\nindex 7b6798d..5489ffe 100755\n--- a/t/t5500-fetch-pack.sh\n+++ b/t/t5500-fetch-pack.sh\n@@ -129,7 +129,7 @@ pull_to_client 2nd \"B\" $((64*3))\n \n pull_to_client 3rd \"A\" $((1*3)) # old fails\n \n-test_expect_success \"clone shallow\" \"git-clone --depth 2 file://`pwd`/. shallow\"\n+test_expect_success \"clone shallow\" \"git-clone --depth 2 \\\"file://`pwd`/.\\\" shallow\"\n \n (cd shallow; git count-objects -v) > count.shallow\n \ndiff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh\nindex 4e93aaa..8bb34f9 100755\n--- a/t/t5700-clone-reference.sh\n+++ b/t/t5700-clone-reference.sh\n@@ -51,7 +51,7 @@ diff expected current'\n cd \"$base_dir\"\n \n test_expect_success 'cloning with reference (no -l -s)' \\\n-'git clone --reference B file://`pwd`/A D'\n+'git clone --reference B \"file://`pwd`/A\" D'\n \n cd \"$base_dir\"\n \ndiff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh\nindex e935b20..1ab5392 100755\n--- a/t/t7003-filter-branch.sh\n+++ b/t/t7003-filter-branch.sh\n@@ -107,7 +107,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '\n \t\t \"git ls-files -s | sed \\\"s-\\\\t-&newsubdir/-\\\" |\n \t          GIT_INDEX_FILE=\\$GIT_INDEX_FILE.new \\\n \t\t\tgit update-index --index-info &&\n-\t\t  mv \\$GIT_INDEX_FILE.new \\$GIT_INDEX_FILE\" directorymoved &&\n+\t\t  mv \\\"\\$GIT_INDEX_FILE.new\\\" \\\"\\$GIT_INDEX_FILE\\\"\" directorymoved &&\n \ttest -z \"$(git diff HEAD directorymoved:newsubdir)\"'\n \n test_expect_success 'stops when msg filter fails' '\ndiff --git a/t/t7501-commit.sh b/t/t7501-commit.sh\nindex b151b51..e97e756 100644\n--- a/t/t7501-commit.sh\n+++ b/t/t7501-commit.sh\n@@ -69,7 +69,7 @@ test_expect_success \\\n \n cat >editor <<\\EOF\n #!/bin/sh\n-sed -i -e \"s/a file/an amend commit/g\" $1\n+sed -i -e \"s/a file/an amend commit/g\" \"$1\"\n EOF\n chmod 755 editor\n \n@@ -88,7 +88,7 @@ test_expect_success \\\n \n cat >editor <<\\EOF\n #!/bin/sh\n-sed -i -e \"s/amend/older/g\" $1\n+sed -i -e \"s/amend/older/g\" \"$1\"\n EOF\n chmod 755 editor\n \ndiff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh\nindex 614cf50..1d802a8 100755\n--- a/t/t9100-git-svn-basic.sh\n+++ b/t/t9100-git-svn-basic.sh\n@@ -31,16 +31,16 @@ test_expect_success \\\n \techo 'zzz' > bar/zzz &&\n \techo '#!/bin/sh' > exec.sh &&\n \tchmod +x exec.sh &&\n-\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n+\tsvn import -m 'import for git-svn' . \\\"$svnrepo\\\" >/dev/null &&\n \tcd .. &&\n \trm -rf import &&\n-\tgit-svn init $svnrepo\"\n+\tgit-svn init \\\"$svnrepo\\\"\"\n \n test_expect_success \\\n     'import an SVN revision into git' \\\n     'git-svn fetch'\n \n-test_expect_success \"checkout from svn\" \"svn co $svnrepo '$SVN_TREE'\"\n+test_expect_success \"checkout from svn\" \"svn co \\\"$svnrepo\\\" \\\"$SVN_TREE\\\"\"\n \n name='try a deep --rmdir with a commit'\n test_expect_success \"$name\" \"\n@@ -51,8 +51,8 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -d '$SVN_TREE'/dir && test ! -d '$SVN_TREE'/dir/a\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -d \\\"$SVN_TREE\\\"/dir && test ! -d \\\"$SVN_TREE\\\"/dir/a\"\n \n \n name='detect node change from file to directory #1'\n@@ -69,7 +69,7 @@ test_expect_failure \"$name\" \"\n \n name='detect node change from directory to file #1'\n test_expect_failure \"$name\" \"\n-\trm -rf dir '$GIT_DIR'/index &&\n+\trm -rf dir \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch2 remotes/git-svn &&\n \tmv bar/zzz zzz &&\n \trm -rf bar &&\n@@ -83,7 +83,7 @@ test_expect_failure \"$name\" \"\n \n name='detect node change from file to directory #2'\n test_expect_failure \"$name\" \"\n-\trm -f '$GIT_DIR'/index &&\n+\trm -f \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch3 remotes/git-svn &&\n \trm bar/zzz &&\n \tgit update-index --remove bar/zzz &&\n@@ -97,7 +97,7 @@ test_expect_failure \"$name\" \"\n \n name='detect node change from directory to file #2'\n test_expect_failure \"$name\" \"\n-\trm -f '$GIT_DIR'/index &&\n+\trm -f \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch4 remotes/git-svn &&\n \trm -rf dir &&\n \tgit update-index --remove -- dir/file &&\n@@ -111,15 +111,15 @@ test_expect_failure \"$name\" \"\n \n name='remove executable bit from a file'\n test_expect_success \"$name\" \"\n-\trm -f '$GIT_DIR'/index &&\n+\trm -f \\\"$GIT_DIR\\\"/index &&\n \tgit checkout -f -b mybranch5 remotes/git-svn &&\n \tchmod -x exec.sh &&\n \tgit update-index exec.sh &&\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest ! -x '$SVN_TREE'/exec.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest ! -x \\\"$SVN_TREE\\\"/exec.sh\"\n \n \n name='add executable bit back file'\n@@ -129,8 +129,8 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -x '$SVN_TREE'/exec.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -x \\\"$SVN_TREE\\\"/exec.sh\"\n \n \n name='executable file becomes a symlink to bar/zzz (file)'\n@@ -141,8 +141,8 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -L '$SVN_TREE'/exec.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -L \\\"$SVN_TREE\\\"/exec.sh\"\n \n name='new symlink is added to a file that was also just made executable'\n \n@@ -153,9 +153,9 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -x '$SVN_TREE'/bar/zzz &&\n-\ttest -L '$SVN_TREE'/exec-2.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -x \\\"$SVN_TREE\\\"/bar/zzz &&\n+\ttest -L \\\"$SVN_TREE\\\"/exec-2.sh\"\n \n name='modify a symlink to become a file'\n test_expect_success \"$name\" \"\n@@ -166,10 +166,10 @@ test_expect_success \"$name\" \"\n \tgit commit -m '$name' &&\n \tgit-svn set-tree --find-copies-harder --rmdir \\\n \t\tremotes/git-svn..mybranch5 &&\n-\tsvn up '$SVN_TREE' &&\n-\ttest -f '$SVN_TREE'/exec-2.sh &&\n-\ttest ! -L '$SVN_TREE'/exec-2.sh &&\n-\tgit diff help $SVN_TREE/exec-2.sh\"\n+\tsvn up \\\"$SVN_TREE\\\" &&\n+\ttest -f \\\"$SVN_TREE\\\"/exec-2.sh &&\n+\ttest ! -L \\\"$SVN_TREE\\\"/exec-2.sh &&\n+\tgit diff help \\\"$SVN_TREE\\\"/exec-2.sh\"\n \n if test \"$have_utf8\" = t\n then\n@@ -190,7 +190,7 @@ name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'\n GIT_SVN_ID=alt\n export GIT_SVN_ID\n test_expect_success \"$name\" \\\n-    \"git-svn init $svnrepo && git-svn fetch &&\n+    \"git-svn init \\\"$svnrepo\\\" && git-svn fetch &&\n      git rev-list --pretty=raw remotes/git-svn | grep ^tree | uniq > a &&\n      git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&\n      git diff a b\"\n@@ -220,16 +220,16 @@ test_expect_failure 'exit if remote refs are ambigious' \"\n         \"\n \n test_expect_failure 'exit if init-ing a would clobber a URL' \"\n-        svnadmin create ${PWD}/svnrepo2 &&\n-        svn mkdir -m 'mkdir bar' ${svnrepo}2/bar &&\n+        svnadmin create \\\"${PWD}/svnrepo2\\\" &&\n+        svn mkdir -m 'mkdir bar' \\\"${svnrepo}2/bar\\\" &&\n         git config --unset svn-remote.svn.fetch \\\n                                 '^bar:refs/remotes/git-svn$' &&\n-        git-svn init ${svnrepo}2/bar\n+        git-svn init \\\"${svnrepo}2/bar\\\"\n         \"\n \n test_expect_success \\\n   'init allows us to connect to another directory in the same repo' \"\n-        git-svn init --minimize-url -i bar $svnrepo/bar &&\n+        git-svn init --minimize-url -i bar \\\"$svnrepo/bar\\\" &&\n         git config --get svn-remote.svn.fetch \\\n                               '^bar:refs/remotes/bar$' &&\n         git config --get svn-remote.svn.fetch \\\ndiff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh\nindex 5aac644..e741bfe 100755\n--- a/t/t9101-git-svn-props.sh\n+++ b/t/t9101-git-svn-props.sh\n@@ -52,7 +52,7 @@ EOF\n cd ..\n \n rm -rf import\n-test_expect_success 'checkout working copy from svn' \"svn co $svnrepo test_wc\"\n+test_expect_success 'checkout working copy from svn' \"svn co \\\"$svnrepo\\\" test_wc\"\n test_expect_success 'setup some commits to svn' \\\n \t'cd test_wc &&\n \t\techo Greetings >> kw.c &&\n@@ -66,7 +66,7 @@ test_expect_success 'setup some commits to svn' \\\n \t\tsvn commit -m \"Propset Id\" &&\n \tcd ..'\n \n-test_expect_success 'initialize git-svn' \"git-svn init $svnrepo\"\n+test_expect_success 'initialize git-svn' \"git-svn init \\\"$svnrepo\\\"\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n \n name='test svn:keywords ignoring'\n@@ -92,7 +92,7 @@ test_expect_success \"propset CR on crlf files\" \\\n test_expect_success 'fetch and pull latest from svn and checkout a new wc' \\\n \t\"git-svn fetch &&\n \t git pull . remotes/git-svn &&\n-\t svn co $svnrepo new_wc\"\n+\t svn co \\\"$svnrepo\\\" new_wc\"\n \n for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf\n do\ndiff --git a/t/t9102-git-svn-deep-rmdir.sh b/t/t9102-git-svn-deep-rmdir.sh\nindex 4e08083..e3af319 100755\n--- a/t/t9102-git-svn-deep-rmdir.sh\n+++ b/t/t9102-git-svn-deep-rmdir.sh\n@@ -9,12 +9,12 @@ test_expect_success 'initialize repo' \"\n \tmkdir -p deeply/nested/directory/number/2 &&\n \techo foo > deeply/nested/directory/number/1/file &&\n \techo foo > deeply/nested/directory/number/2/another &&\n-\tsvn import -m 'import for git-svn' . $svnrepo &&\n+\tsvn import -m 'import for git-svn' . \\\"$svnrepo\\\" &&\n \tcd ..\n \t\"\n \n test_expect_success 'mirror via git-svn' \"\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init \\\"$svnrepo\\\" &&\n \tgit-svn fetch &&\n \tgit checkout -f -b test-rmdir remotes/git-svn\n \t\"\n@@ -23,7 +23,7 @@ test_expect_success 'Try a commit on rmdir' \"\n \tgit rm -f deeply/nested/directory/number/2/another &&\n \tgit commit -a -m 'remove another' &&\n \tgit-svn set-tree --rmdir HEAD &&\n-\tsvn ls -R $svnrepo | grep ^deeply/nested/directory/number/1\n+\tsvn ls -R \\\"$svnrepo\\\" | grep ^deeply/nested/directory/number/1\n \t\"\n \n \ndiff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh\nindex 7ba7630..a422afa 100755\n--- a/t/t9104-git-svn-follow-parent.sh\n+++ b/t/t9104-git-svn-follow-parent.sh\n@@ -11,9 +11,9 @@ test_expect_success 'initialize repo' \"\n \tcd import &&\n \tmkdir -p trunk &&\n \techo hello > trunk/readme &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . \\\"$svnrepo\\\" &&\n \tcd .. &&\n-\tsvn co $svnrepo wc &&\n+\tsvn co \\\"$svnrepo\\\" wc &&\n \tcd wc &&\n \techo world >> trunk/readme &&\n \tpoke trunk/readme &&\n@@ -27,7 +27,7 @@ test_expect_success 'initialize repo' \"\n \t\"\n \n test_expect_success 'init and fetch a moved directory' \"\n-\tgit-svn init --minimize-url -i thunk $svnrepo/thunk &&\n+\tgit-svn init --minimize-url -i thunk \\\"$svnrepo/thunk\\\" &&\n \tgit-svn fetch -i thunk &&\n \ttest \\\"\\`git rev-parse --verify refs/remotes/thunk@2\\`\\\" \\\n            = \\\"\\`git rev-parse --verify refs/remotes/thunk~1\\`\\\" &&\n@@ -38,7 +38,7 @@ test_expect_success 'init and fetch a moved directory' \"\n \t\"\n \n test_expect_success 'init and fetch from one svn-remote' \"\n-        git config svn-remote.svn.url $svnrepo &&\n+        git config svn-remote.svn.url \\\"$svnrepo\\\" &&\n         git config --add svn-remote.svn.fetch \\\n           trunk:refs/remotes/svn/trunk &&\n         git config --add svn-remote.svn.fetch \\\n@@ -52,9 +52,9 @@ test_expect_success 'init and fetch from one svn-remote' \"\n \n test_expect_success 'follow deleted parent' \"\n         (svn cp -m 'resurrecting trunk as junk' \\\n-               $svnrepo/trunk@2 $svnrepo/junk ||\n+               \\\"$svnrepo/trunk@2\\\" \\\"$svnrepo\\\"/junk ||\n          svn cp -m 'resurrecting trunk as junk' \\\n-               -r2 $svnrepo/trunk $svnrepo/junk) &&\n+               -r2 \\\"$svnrepo/trunk\\\" \\\"$svnrepo/junk\\\") &&\n         git config --add svn-remote.svn.fetch \\\n           junk:refs/remotes/svn/junk &&\n         git-svn fetch -i svn/thunk &&\n@@ -67,10 +67,10 @@ test_expect_success 'follow deleted parent' \"\n test_expect_success 'follow larger parent' \"\n         mkdir -p import/trunk/thunk/bump/thud &&\n         echo hi > import/trunk/thunk/bump/thud/file &&\n-        svn import -m 'import a larger parent' import $svnrepo/larger-parent &&\n-        svn cp -m 'hi' $svnrepo/larger-parent $svnrepo/another-larger &&\n+        svn import -m 'import a larger parent' import \\\"$svnrepo/larger-parent\\\" &&\n+        svn cp -m 'hi' \\\"$svnrepo/larger-parent\\\" \\\"$svnrepo/another-larger\\\" &&\n         git-svn init --minimize-url -i larger \\\n-          $svnrepo/another-larger/trunk/thunk/bump/thud &&\n+          \\\"$svnrepo/another-larger/trunk/thunk/bump/thud\\\" &&\n         git-svn fetch -i larger &&\n         git rev-parse --verify refs/remotes/larger &&\n         git rev-parse --verify \\\n@@ -83,23 +83,23 @@ test_expect_success 'follow larger parent' \"\n         \"\n \n test_expect_success 'follow higher-level parent' \"\n-        svn mkdir -m 'follow higher-level parent' $svnrepo/blob &&\n-        svn co $svnrepo/blob blob &&\n+        svn mkdir -m 'follow higher-level parent' \\\"$svnrepo/blob\\\" &&\n+        svn co \\\"$svnrepo/blob\\\" blob &&\n         cd blob &&\n                 echo hi > hi &&\n                 svn add hi &&\n                 svn commit -m 'hihi' &&\n                 cd ..\n-        svn mkdir -m 'new glob at top level' $svnrepo/glob &&\n-        svn mv -m 'move blob down a level' $svnrepo/blob $svnrepo/glob/blob &&\n-        git-svn init --minimize-url -i blob $svnrepo/glob/blob &&\n+        svn mkdir -m 'new glob at top level' \\\"$svnrepo/glob\\\" &&\n+        svn mv -m 'move blob down a level' \\\"$svnrepo/blob\\\" \\\"$svnrepo/glob/blob\\\" &&\n+        git-svn init --minimize-url -i blob \\\"$svnrepo/glob/blob\\\" &&\n         git-svn fetch -i blob\n         \"\n \n test_expect_success 'follow deleted directory' \"\n-\tsvn mv -m 'bye!' $svnrepo/glob/blob/hi $svnrepo/glob/blob/bye &&\n-\tsvn rm -m 'remove glob' $svnrepo/glob &&\n-\tgit-svn init --minimize-url -i glob $svnrepo/glob &&\n+\tsvn mv -m 'bye!' \\\"$svnrepo/glob/blob/hi\\\" \\\"$svnrepo/glob/blob/bye\\\" &&\n+\tsvn rm -m 'remove glob' \\\"$svnrepo/glob\\\" &&\n+\tgit-svn init --minimize-url -i glob \\\"$svnrepo/glob\\\" &&\n \tgit-svn fetch -i glob &&\n \ttest \\\"\\`git cat-file blob refs/remotes/glob:blob/bye\\`\\\" = hi &&\n \ttest \\\"\\`git ls-tree refs/remotes/glob | wc -l \\`\\\" -eq 1\n@@ -118,9 +118,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  echo 'bad delete test 2' > \\\n \t   import/trunk/subversion/bindings/swig/perl/another-larger &&\n \tcd import &&\n-\t  svn import -m 'r9270 test' . $svnrepo/r9270 &&\n+\t  svn import -m 'r9270 test' . \\\"$svnrepo/r9270\\\" &&\n \tcd .. &&\n-\tsvn co $svnrepo/r9270/trunk/subversion/bindings/swig/perl r9270 &&\n+\tsvn co \\\"$svnrepo/r9270/trunk/subversion/bindings/swig/perl\\\" r9270 &&\n \tcd r9270 &&\n \t  svn mkdir native &&\n \t  svn mv t native/t &&\n@@ -130,7 +130,7 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t  svn commit -m 'reorg test' &&\n \tcd .. &&\n \tgit-svn init --minimize-url -i r9270-t \\\n-\t  $svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t &&\n+\t  \\\"$svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t\\\" &&\n \tgit-svn fetch -i r9270-t &&\n \ttest \\`git rev-list r9270-t | wc -l\\` -eq 2 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t~1\\`\\\" = \\\n@@ -138,9 +138,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' \"\n \t\"\n \n test_expect_success \"track initial change if it was only made to parent\" \"\n-\tsvn cp -m 'wheee!' $svnrepo/r9270/trunk $svnrepo/r9270/drunk &&\n+\tsvn cp -m 'wheee!' \\\"$svnrepo/r9270/trunk\\\" \\\"$svnrepo/r9270/drunk\\\" &&\n \tgit-svn init --minimize-url -i r9270-d \\\n-\t  $svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t &&\n+\t  \\\"$svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t\\\" &&\n \tgit-svn fetch -i r9270-d &&\n \ttest \\`git rev-list r9270-d | wc -l\\` -eq 3 &&\n \ttest \\\"\\`git ls-tree --name-only r9270-t\\`\\\" = \\\n@@ -150,7 +150,7 @@ test_expect_success \"track initial change if it was only made to parent\" \"\n \t\"\n \n test_expect_success \"track multi-parent paths\" \"\n-\tsvn cp -m 'resurrect /glob' $svnrepo/r9270 $svnrepo/glob &&\n+\tsvn cp -m 'resurrect /glob' \\\"$svnrepo/r9270\\\" \\\"$svnrepo/glob\\\" &&\n \tgit-svn multi-fetch &&\n \ttest \\`git cat-file commit refs/remotes/glob | \\\n \t       grep '^parent ' | wc -l\\` -eq 2\n@@ -161,8 +161,8 @@ test_expect_success \"multi-fetch continues to work\" \"\n \t\"\n \n test_expect_success \"multi-fetch works off a 'clean' repository\" \"\n-\trm -r $GIT_DIR/svn $GIT_DIR/refs/remotes $GIT_DIR/logs &&\n-\tmkdir $GIT_DIR/svn &&\n+\trm -r \\\"$GIT_DIR/svn\\\" \\\"$GIT_DIR/refs/remotes\\\" \\\"$GIT_DIR/logs\\\" &&\n+\tmkdir \\\"$GIT_DIR/svn\\\" &&\n \tgit-svn multi-fetch\n \t\"\n \ndiff --git a/t/t9105-git-svn-commit-diff.sh b/t/t9105-git-svn-commit-diff.sh\nindex 318e172..9cc38d3 100755\n--- a/t/t9105-git-svn-commit-diff.sh\n+++ b/t/t9105-git-svn-commit-diff.sh\n@@ -8,7 +8,7 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo hello > readme &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . \\\"$svnrepo\\\" &&\n \tcd .. &&\n \techo hello > readme &&\n \tgit update-index --add readme &&\n@@ -26,17 +26,17 @@ prev=`git rev-parse --verify HEAD^1`\n \n test_expect_success 'test the commit-diff command' \"\n \ttest -n '$prev' && test -n '$head' &&\n-\tgit-svn commit-diff -r1 '$prev' '$head' '$svnrepo' &&\n-\tsvn co $svnrepo wc &&\n+\tgit-svn commit-diff -r1 '$prev' '$head' \\\"$svnrepo\\\" &&\n+\tsvn co \\\"$svnrepo\\\" wc &&\n \tcmp readme wc/readme\n \t\"\n \n test_expect_success 'commit-diff to a sub-directory (with git-svn config)' \"\n-\tsvn import -m 'sub-directory' import $svnrepo/subdir &&\n-\tgit-svn init --minimize-url $svnrepo/subdir &&\n+\tsvn import -m 'sub-directory' import \\\"$svnrepo/subdir\\\" &&\n+\tgit-svn init --minimize-url \\\"$svnrepo/subdir\\\" &&\n \tgit-svn fetch &&\n \tgit-svn commit-diff -r3 '$prev' '$head' &&\n-\tsvn cat $svnrepo/subdir/readme > readme.2 &&\n+\tsvn cat \\\"$svnrepo/subdir/readme\\\" > readme.2 &&\n \tcmp readme readme.2\n \t\"\n \ndiff --git a/t/t9106-git-svn-commit-diff-clobber.sh b/t/t9106-git-svn-commit-diff-clobber.sh\nindex 79b7968..892ca55 100755\n--- a/t/t9106-git-svn-commit-diff-clobber.sh\n+++ b/t/t9106-git-svn-commit-diff-clobber.sh\n@@ -8,14 +8,14 @@ test_expect_success 'initialize repo' \"\n \tmkdir import &&\n \tcd import &&\n \techo initial > file &&\n-\tsvn import -m 'initial' . $svnrepo &&\n+\tsvn import -m 'initial' . \\\"$svnrepo\\\" &&\n \tcd .. &&\n \techo initial > file &&\n \tgit update-index --add file &&\n \tgit commit -a -m 'initial'\n \t\"\n test_expect_success 'commit change from svn side' \"\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co \\\"$svnrepo\\\" t.svn &&\n \tcd t.svn &&\n \techo second line from svn >> file &&\n \tpoke file &&\n@@ -27,7 +27,7 @@ test_expect_success 'commit change from svn side' \"\n test_expect_failure 'commit conflicting change from git' \"\n \techo second line from git >> file &&\n \tgit commit -a -m 'second line from git' &&\n-\tgit-svn commit-diff -r1 HEAD~1 HEAD $svnrepo\n+\tgit-svn commit-diff -r1 HEAD~1 HEAD \\\"$svnrepo\\\"\n \t\" || true\n \n test_expect_success 'commit complementing change from git' \"\n@@ -36,14 +36,14 @@ test_expect_success 'commit complementing change from git' \"\n \tgit commit -a -m 'second line from svn' &&\n \techo third line from git >> file &&\n \tgit commit -a -m 'third line from git' &&\n-\tgit-svn commit-diff -r2 HEAD~1 HEAD $svnrepo\n+\tgit-svn commit-diff -r2 HEAD~1 HEAD \\\"$svnrepo\\\"\n \t\"\n \n test_expect_failure 'dcommit fails to commit because of conflict' \"\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init \\\"$svnrepo\\\" &&\n \tgit-svn fetch &&\n \tgit reset --hard refs/remotes/git-svn &&\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co \\\"$svnrepo\\\" t.svn &&\n \tcd t.svn &&\n \techo fourth line from svn >> file &&\n \tpoke file &&\n@@ -67,7 +67,7 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' \"\n \t\"\n \n test_expect_success 'commit another change from svn side' \"\n-\tsvn co $svnrepo t.svn &&\n+\tsvn co \\\"$svnrepo\\\" t.svn &&\n \tcd t.svn &&\n \t\techo third line from svn >> file &&\n \t\tpoke file &&\ndiff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh\nindex 67fdf70..59e8f0d 100755\n--- a/t/t9107-git-svn-migrate.sh\n+++ b/t/t9107-git-svn-migrate.sh\n@@ -4,7 +4,7 @@ test_description='git-svn metadata migrations from previous versions'\n . ./lib-git-svn.sh\n \n test_expect_success 'setup old-looking metadata' \"\n-\tcp $GIT_DIR/config $GIT_DIR/config-old-git-svn &&\n+\tcp \\\"$GIT_DIR/config\\\" \\\"$GIT_DIR/config-old-git-svn\\\" &&\n \tmkdir import &&\n \tcd import &&\n \t\tfor i in trunk branches/a branches/b \\\n@@ -12,13 +12,13 @@ test_expect_success 'setup old-looking metadata' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . $svnrepo\n+\t\tsvn import -m test . \\\"$svnrepo\\\"\n \t\tcd .. &&\n-\tgit-svn init $svnrepo &&\n+\tgit-svn init \\\"$svnrepo\\\" &&\n \tgit-svn fetch &&\n-\tmv $GIT_DIR/svn/* $GIT_DIR/ &&\n-\tmv $GIT_DIR/svn/.metadata $GIT_DIR/ &&\n-\trmdir $GIT_DIR/svn &&\n+\tmv \\\"$GIT_DIR\\\"/svn/* \\\"$GIT_DIR/\\\" &&\n+\tmv \\\"$GIT_DIR/svn/.metadata\\\" \\\"$GIT_DIR/\\\" &&\n+\trmdir \\\"$GIT_DIR/svn\\\" &&\n \tgit update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&\n \tgit update-ref -d refs/remotes/git-svn refs/remotes/git-svn\n@@ -28,20 +28,20 @@ head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`\n test_expect_success 'git-svn-HEAD is a real HEAD' \"test -n '$head'\"\n \n test_expect_success 'initialize old-style (v0) git-svn layout' \"\n-\tmkdir -p $GIT_DIR/git-svn/info $GIT_DIR/svn/info &&\n-\techo $svnrepo > $GIT_DIR/git-svn/info/url &&\n-\techo $svnrepo > $GIT_DIR/svn/info/url &&\n+\tmkdir -p \\\"$GIT_DIR/git-svn/info\\\" \\\"$GIT_DIR/svn/info\\\" &&\n+\techo \\\"$svnrepo\\\" > \\\"$GIT_DIR/git-svn/info/url\\\" &&\n+\techo \\\"$svnrepo\\\" > \\\"$GIT_DIR/svn/info/url\\\" &&\n \tgit-svn migrate &&\n-\t! test -d $GIT_DIR/git-svn &&\n+\t! test -d \\\"$GIT_DIR/git-svn\\\" &&\n \tgit rev-parse --verify refs/remotes/git-svn^0 &&\n \tgit rev-parse --verify refs/remotes/svn^0 &&\n-\ttest \\`git config --get svn-remote.svn.url\\` = '$svnrepo' &&\n+\ttest \\\"\\`git config --get svn-remote.svn.url\\`\\\" = \\\"$svnrepo\\\" &&\n \ttest \\`git config --get svn-remote.svn.fetch\\` = \\\n              ':refs/remotes/git-svn'\n \t\"\n \n test_expect_success 'initialize a multi-repository repo' \"\n-\tgit-svn init $svnrepo -T trunk -t tags -b branches &&\n+\tgit-svn init \\\"$svnrepo\\\" -T trunk -t tags -b branches &&\n \tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n \tgrep '^trunk:refs/remotes/trunk$' fetch.out &&\n \ttest -n \\\"\\`git config --get svn-remote.svn.branches \\\n@@ -76,14 +76,14 @@ test_expect_success 'multi-fetch works on partial urls + paths' \"\n test_expect_success 'migrate --minimize on old inited layout' \"\n \tgit config --unset-all svn-remote.svn.fetch &&\n \tgit config --unset-all svn-remote.svn.url &&\n-\trm -rf $GIT_DIR/svn &&\n+\trm -rf \\\"$GIT_DIR/svn\\\" &&\n \tfor i in \\`cat fetch.out\\`; do\n \t\tpath=\\`expr \\$i : '\\\\([^:]*\\\\):.*$'\\`\n \t\tref=\\`expr \\$i : '[^:]*:refs/remotes/\\\\(.*\\\\)$'\\`\n \t\tif test -z \\\"\\$ref\\\"; then continue; fi\n \t\tif test -n \\\"\\$path\\\"; then path=\\\"/\\$path\\\"; fi\n-\t\t( mkdir -p $GIT_DIR/svn/\\$ref/info/ &&\n-\t\techo $svnrepo\\$path > $GIT_DIR/svn/\\$ref/info/url ) || exit 1;\n+\t\t( mkdir -p \\\"$GIT_DIR\\\"/svn/\\$ref/info/ &&\n+\t\techo \\\"$svnrepo\\\"\\$path > \\\"$GIT_DIR\\\"/svn/\\$ref/info/url ) || exit 1;\n \tdone &&\n \tgit-svn migrate --minimize &&\n \ttest -z \\\"\\`git config -l |grep -v '^svn-remote\\.git-svn\\.'\\`\\\" &&\n@@ -99,13 +99,13 @@ test_expect_success 'migrate --minimize on old inited layout' \"\n \n test_expect_success  \".rev_db auto-converted to .rev_db.UUID\" \"\n \tgit-svn fetch -i trunk &&\n-\texpect=$GIT_DIR/svn/trunk/.rev_db.* &&\n+\texpect=\\\"\\`find \\\"\\$GIT_DIR\\\"/svn/trunk/ -name '.rev_db.*'\\`\\\" &&\n \ttest -n \\\"\\$expect\\\" &&\n-\tmv \\$expect $GIT_DIR/svn/trunk/.rev_db &&\n+\tmv \\\"\\$expect\\\" \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db &&\n \tgit-svn fetch -i trunk &&\n-\ttest -L $GIT_DIR/svn/trunk/.rev_db &&\n-\ttest -f \\$expect &&\n-\tcmp \\$expect $GIT_DIR/svn/trunk/.rev_db\n+\ttest -L \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db &&\n+\ttest -f \\\"\\$expect\\\" &&\n+\tcmp \\\"\\$expect\\\" \\\"\\$GIT_DIR\\\"/svn/trunk/.rev_db\n \t\"\n \n test_done\ndiff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh\nindex db4344c..eb039ef 100755\n--- a/t/t9108-git-svn-glob.sh\n+++ b/t/t9108-git-svn-glob.sh\n@@ -14,8 +14,8 @@ test_expect_success 'test refspec globbing' \"\n \tmkdir -p trunk/src/a trunk/src/b trunk/doc &&\n \techo 'hello world' > trunk/src/a/readme &&\n \techo 'goodbye world' > trunk/src/b/readme &&\n-\tsvn import -m 'initial' trunk $svnrepo/trunk &&\n-\tsvn co $svnrepo tmp &&\n+\tsvn import -m 'initial' trunk \\\"$svnrepo/trunk\\\" &&\n+\tsvn co \\\"$svnrepo\\\" tmp &&\n \tcd tmp &&\n \t\tmkdir branches tags &&\n \t\tsvn add branches tags &&\n@@ -38,7 +38,7 @@ test_expect_success 'test refspec globbing' \"\n \t\tpoke tags/end/src/b/readme &&\n \t\tsvn commit -m 'nothing to see here'\n \t\tcd .. &&\n-\tgit config --add svn-remote.svn.url $svnrepo &&\n+\tgit config --add svn-remote.svn.url \\\"$svnrepo\\\" &&\n \tgit config --add svn-remote.svn.fetch \\\n \t                 'trunk/src/a:refs/remotes/trunk' &&\n \tgit config --add svn-remote.svn.branches \\\n@@ -60,7 +60,7 @@ echo nothing to see here >> expect.two\n cat expect.end >> expect.two\n \n test_expect_success 'test left-hand-side only globbing' \"\n-\tgit config --add svn-remote.two.url $svnrepo &&\n+\tgit config --add svn-remote.two.url \\\"$svnrepo\\\" &&\n \tgit config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&\n \tgit config --add svn-remote.two.branches \\\n \t                 'branches/*:refs/remotes/two/branches/*' &&\ndiff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh\nindex 6235af4..9df60ba 100755\n--- a/t/t9110-git-svn-use-svm-props.sh\n+++ b/t/t9110-git-svn-use-svm-props.sh\n@@ -8,11 +8,11 @@ test_description='git-svn useSvmProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svm repo' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9110/svm.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar $svnrepo/mirror/arr &&\n-\tgit-svn init --minimize-url -R argh -i dir $svnrepo/mirror/argh &&\n+\tsvnadmin load -q \\\"$rawsvnrepo\\\" < ../t9110/svm.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar \\\"$svnrepo/mirror/arr\\\" &&\n+\tgit-svn init --minimize-url -R argh -i dir \\\"$svnrepo/mirror/argh\\\" &&\n \tgit-svn init --minimize-url -R argh -i e \\\n-\t  $svnrepo/mirror/argh/a/b/c/d/e &&\n+\t  \\\"$svnrepo/mirror/argh/a/b/c/d/e\\\" &&\n \tgit config svn.useSvmProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9111-git-svn-use-svnsync-props.sh b/t/t9111-git-svn-use-svnsync-props.sh\nindex ec7dedd..e3693eb 100755\n--- a/t/t9111-git-svn-use-svnsync-props.sh\n+++ b/t/t9111-git-svn-use-svnsync-props.sh\n@@ -8,10 +8,10 @@ test_description='git-svn useSvnsyncProps test'\n . ./lib-git-svn.sh\n \n test_expect_success 'load svnsync repo' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9111/svnsync.dump &&\n-\tgit-svn init --minimize-url -R arr -i bar $svnrepo/bar &&\n-\tgit-svn init --minimize-url -R argh -i dir $svnrepo/dir &&\n-\tgit-svn init --minimize-url -R argh -i e $svnrepo/dir/a/b/c/d/e &&\n+\tsvnadmin load -q \\\"$rawsvnrepo\\\" < ../t9111/svnsync.dump &&\n+\tgit-svn init --minimize-url -R arr -i bar \\\"$svnrepo/bar\\\" &&\n+\tgit-svn init --minimize-url -R argh -i dir \\\"$svnrepo/dir\\\" &&\n+\tgit-svn init --minimize-url -R argh -i e \\\"$svnrepo/dir/a/b/c/d/e\\\" &&\n \tgit config svn.useSvnsyncProps true &&\n \tgit-svn fetch --all\n \t\"\ndiff --git a/t/t9112-git-svn-md5less-file.sh b/t/t9112-git-svn-md5less-file.sh\nindex 08313bb..124120c 100755\n--- a/t/t9112-git-svn-md5less-file.sh\n+++ b/t/t9112-git-svn-md5less-file.sh\n@@ -38,8 +38,8 @@ PROPS-END\n \n EOF\n \n-test_expect_success 'load svn dumpfile' \"svnadmin load $rawsvnrepo < dumpfile.svn\"\n+test_expect_success 'load svn dumpfile' \"svnadmin load \\\"$rawsvnrepo\\\" < dumpfile.svn\"\n \n-test_expect_success 'initialize git-svn' \"git-svn init $svnrepo\"\n+test_expect_success 'initialize git-svn' \"git-svn init \\\"$svnrepo\\\"\"\n test_expect_success 'fetch revisions from svn' 'git-svn fetch'\n test_done\ndiff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh\nindex 9ef0db9..150d7f0 100755\n--- a/t/t9113-git-svn-dcommit-new-file.sh\n+++ b/t/t9113-git-svn-dcommit-new-file.sh\n@@ -15,14 +15,14 @@ test_description='git-svn dcommit new files over svn:// test'\n \n start_svnserve () {\n \tsvnserve --listen-port $SVNSERVE_PORT \\\n-\t         --root $rawsvnrepo \\\n+\t         --root \"$rawsvnrepo\" \\\n \t         --listen-once \\\n \t         --listen-host 127.0.0.1 &\n }\n \n test_expect_success 'start tracking an empty repo' \"\n-\tsvn mkdir -m 'empty dir' $svnrepo/empty-dir &&\n-\techo anon-access = write >> $rawsvnrepo/conf/svnserve.conf &&\n+\tsvn mkdir -m 'empty dir' \\\"$svnrepo/empty-dir\\\" &&\n+\techo anon-access = write >> \\\"$rawsvnrepo/conf/svnserve.conf\\\" &&\n \tstart_svnserve &&\n \tgit svn init svn://127.0.0.1:$SVNSERVE_PORT &&\n \tgit svn fetch\ndiff --git a/t/t9114-git-svn-dcommit-merge.sh b/t/t9114-git-svn-dcommit-merge.sh\nindex d6ca955..ffe8859 100755\n--- a/t/t9114-git-svn-dcommit-merge.sh\n+++ b/t/t9114-git-svn-dcommit-merge.sh\n@@ -35,7 +35,7 @@ EOF\n }\n \n test_expect_success 'setup svn repository' \"\n-\tsvn co $svnrepo mysvnwork &&\n+\tsvn co \\\"$svnrepo\\\" mysvnwork &&\n \tmkdir -p mysvnwork/trunk &&\n \tcd mysvnwork &&\n \t\tbig_text_block >> trunk/README &&\n@@ -45,7 +45,7 @@ test_expect_success 'setup svn repository' \"\n \t\"\n \n test_expect_success 'setup git mirror and merge' \"\n-\tgit svn init $svnrepo -t tags -T trunk -b branches &&\n+\tgit svn init \\\"$svnrepo\\\" -t tags -T trunk -b branches &&\n \tgit svn fetch &&\n \tgit checkout --track -b svn remotes/trunk &&\n \tgit checkout -b merge &&\ndiff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh\nindex 182299c..0681ffa 100755\n--- a/t/t9115-git-svn-dcommit-funky-renames.sh\n+++ b/t/t9115-git-svn-dcommit-funky-renames.sh\n@@ -8,12 +8,12 @@ test_description='git-svn dcommit can commit renames of files with ugly names'\n . ./lib-git-svn.sh\n \n test_expect_success 'load repository with strange names' \"\n-\tsvnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&\n+\tsvnadmin load -q \\\"$rawsvnrepo\\\" < ../t9115/funky-names.dump &&\n \tstart_httpd\n \t\"\n \n test_expect_success 'init and fetch repository' \"\n-\tgit svn init $svnrepo &&\n+\tgit svn init \\\"$svnrepo\\\" &&\n \tgit svn fetch &&\n \tgit reset --hard git-svn\n \t\"\ndiff --git a/t/t9116-git-svn-log.sh b/t/t9116-git-svn-log.sh\nindex 0d4e6b3..890b5f1 100755\n--- a/t/t9116-git-svn-log.sh\n+++ b/t/t9116-git-svn-log.sh\n@@ -14,9 +14,9 @@ test_expect_success 'setup repository and import' \"\n \t\t\tmkdir -p \\$i && \\\n \t\t\techo hello >> \\$i/README || exit 1\n \t\tdone && \\\n-\t\tsvn import -m test . $svnrepo\n+\t\tsvn import -m test . \\\"$svnrepo\\\"\n \t\tcd .. &&\n-\tgit-svn init $svnrepo -T trunk -b branches -t tags &&\n+\tgit-svn init \\\"$svnrepo\\\" -T trunk -b branches -t tags &&\n \tgit-svn fetch &&\n \tgit reset --hard trunk &&\n \techo bye >> README &&\ndiff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb-standalone-no-errors.sh\nindex 642b836..b90e78c 100755\n--- a/t/t9500-gitweb-standalone-no-errors.sh\n+++ b/t/t9500-gitweb-standalone-no-errors.sh\n@@ -45,13 +45,13 @@ gitweb_run () {\n \texport QUERY_STRING=\"\"$1\"\"\n \texport PATH_INFO=\"\"$2\"\"\n \n-\texport GITWEB_CONFIG=$(pwd)/gitweb_config.perl\n+\texport GITWEB_CONFIG=\"$(pwd)/gitweb_config.perl\"\n \n \t# some of git commands write to STDERR on error, but this is not\n \t# written to web server logs, so we are not interested in that:\n \t# we are interested only in properly formatted errors/warnings\n \trm -f gitweb.log &&\n-\tperl -- $(pwd)/../../gitweb/gitweb.perl \\\n+\tperl -- \"$(pwd)/../../gitweb/gitweb.perl\" \\\n \t\t>/dev/null 2>gitweb.log &&\n \tif grep -q -s \"^[[]\" gitweb.log >/dev/null; then false; else true; fi\n \ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex cc1253c..a68415f 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -229,7 +229,7 @@ test_create_repo () {\n \trepo=\"$1\"\n \tmkdir \"$repo\"\n \tcd \"$repo\" || error \"Cannot setup test environment\"\n-\t\"$GIT_EXEC_PATH/git\" init --template=$GIT_EXEC_PATH/templates/blt/ >/dev/null 2>&1 ||\n+\t\"$GIT_EXEC_PATH/git\" init --template=\"$GIT_EXEC_PATH/templates/blt/\" >/dev/null 2>&1 ||\n \terror \"cannot run git init -- have you built things yet?\"\n \tmv .git/hooks .git/hooks-disabled\n \tcd \"$owd\"\n-- \n1.5.3.1\n"},{"id":"56233","messageId":"4715E6EF.1000908@viscovery.net","threadId":"10239","inReplyTo":"11926134961549-git-send-email-maillist@steelskies.com","subject":"Re: [PATCH 1/2] Fixing path quoting in git-rebase","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-17T10:41:51Z","receivedAt":"2007-10-17T10:41:51Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> git-rebase used to fail when run from a path with a space in.\n> \n> Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>\n> ---\n>  git-rebase.sh |   26 +++++++++++++-------------\n>  1 files changed, 13 insertions(+), 13 deletions(-)\n\nLooks good and works. Thanks.\n\n-- Hannes\n"},{"id":"56240","messageId":"4715F2E6.1000708@viscovery.net","threadId":"10239","inReplyTo":"11926134961275-git-send-email-maillist@steelskies.com","subject":"Re: [PATCH 2/2] Quoting paths in tests","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-17T11:32:54Z","receivedAt":"2007-10-17T11:32:54Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> --- a/t/lib-git-svn.sh\n> +++ b/t/lib-git-svn.sh\n> @@ -25,7 +25,7 @@ perl -w -e \"\n>  use SVN::Core;\n>  use SVN::Repos;\n>  \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n> -system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or exit(41);\n> +system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or exit(41);\n\nHere you have to work harder: The reason is that this is part of a perl \nexpression (as opposed to an eval'd string), which does not have access to \n$svnrepo of the shell by which it is invoked. The original version failed if \nthere were single-quotes in $svnrepo, the new version fails if it contains \ndouble-quotes.\n\n>  \" >&3 2>&4\n\n\n> -\tsvn import -m 'import for git-svn' . $svnrepo >/dev/null &&\n> +\tsvn import -m 'import for git-svn' . \\\"$svnrepo\\\" >/dev/null &&\n\nThis must be\n\n\tsvn import -m 'import for git-svn' . \\\"\\$svnrepo\\\" >/dev/null &&\n\nto be safe. Your version would break with names with double-quotes, because \n$svnrepo would be expanded and then eval'd inside test_expect_*. This error \nrecurs numerous times until the end of the patch.\n\nMay I recommend that you run the test suite in a directory named like this:\n\n\t$ mkdir \\\"\\ \\$GIT_DIR\\ \\'\n\t$ ls\n\t\" $GIT_DIR '\n\n> -\t\t( mkdir -p $GIT_DIR/svn/\\$ref/info/ &&\n> -\t\techo $svnrepo\\$path > $GIT_DIR/svn/\\$ref/info/url ) || exit 1;\n> +\t\t( mkdir -p \\\"$GIT_DIR\\\"/svn/\\$ref/info/ &&\n> +\t\techo \\\"$svnrepo\\\"\\$path > \\\"$GIT_DIR\\\"/svn/\\$ref/info/url ) || exit 1;\n\nI assume $path is under control of the test script, otherwise it must be \ninside the double-quotes, too.\n\n>  test_expect_success  \".rev_db auto-converted to .rev_db.UUID\" \"\n>  \tgit-svn fetch -i trunk &&\n> -\texpect=$GIT_DIR/svn/trunk/.rev_db.* &&\n> +\texpect=\\\"\\`find \\\"\\$GIT_DIR\\\"/svn/trunk/ -name '.rev_db.*'\\`\\\" &&\n\nWhy is this trickery with find needed? Isn't it easier to put the whole test \ncase in single-quotes instead?\n\n-- Hannes\n"},{"id":"56261","messageId":"6E65762D-FBC4-4A7C-97A9-20F6744E25DE@steelskies.com","threadId":"10239","inReplyTo":"4715F2E6.1000708@viscovery.net","subject":"Re: [PATCH 2/2] Quoting paths in tests","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-17T17:07:38Z","receivedAt":"2007-10-17T17:07:38Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"\nOn 17 Oct 2007, at 12:32, Johannes Sixt wrote:\n\n> Jonathan del Strother schrieb:\n>> --- a/t/lib-git-svn.sh\n>> +++ b/t/lib-git-svn.sh\n>> @@ -25,7 +25,7 @@ perl -w -e \"\n>> use SVN::Core;\n>> use SVN::Repos;\n>> \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n>> -system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or  \n>> exit(41);\n>> +system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or  \n>> exit(41);\n>\n> Here you have to work harder: The reason is that this is part of a  \n> perl expression (as opposed to an eval'd string), which does not  \n> have access to $svnrepo of the shell by which it is invoked. The  \n> original version failed if there were single-quotes in $svnrepo, the  \n> new version fails if it contains double-quotes.\n...\n>\n> May I recommend that you run the test suite in a directory named  \n> like this:\n>\n> \t$ mkdir \\\"\\ \\$GIT_DIR\\ \\'\n> \t$ ls\n> \t\" $GIT_DIR '\n\n\nEww.  I'm struggling a bit with paths this perverse, actually.\n\nFor instance, git_editor in git-sh-setup expects the editor path to be  \npre-quoted.  So in t3404, you need to produce escaped double quotes &  \ndollar signs, resulting in unpleasantness like this :\n\nVISUAL=\"`pwd`/fake-editor.sh\"\nVISUAL=${VISUAL//\\\"/\\\\\\\"}\nVISUAL=${VISUAL//$/\\\\\\$}\nVISUAL=\\\"$VISUAL\\\"\nexport VISUAL\n\n\nAnd I'm struggling to come up with neat ways of rewriting things like,  \neg, this bit from t5500 -\ntest_expect_success \"clone shallow\" \"git-clone --depth 2 \\\"file:// \n`pwd`/.\\\" shallow\"\n- to handle paths like that properly.\n\n\nSuggestions?\n\nJon\n"},{"id":"56266","messageId":"864pgpfyrd.fsf@lola.quinscape.zz","threadId":"10239","inReplyTo":"6E65762D-FBC4-4A7C-97A9-20F6744E25DE@steelskies.com","subject":"Re: [PATCH 2/2] Quoting paths in tests","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-17T17:15:50Z","receivedAt":"2007-10-17T17:15:50Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Jonathan del Strother <maillist@steelskies.com> writes:\n\n> On 17 Oct 2007, at 12:32, Johannes Sixt wrote:\n>\n>> Jonathan del Strother schrieb:\n>>> --- a/t/lib-git-svn.sh\n>>> +++ b/t/lib-git-svn.sh\n>>> @@ -25,7 +25,7 @@ perl -w -e \"\n>>> use SVN::Core;\n>>> use SVN::Repos;\n>>> \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n>>> -system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or\n>>> exit(41);\n>>> +system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or\n>>> exit(41);\n>>\n>> Here you have to work harder: The reason is that this is part of a\n>> perl expression (as opposed to an eval'd string), which does not\n>> have access to $svnrepo of the shell by which it is invoked. The\n>> original version failed if there were single-quotes in $svnrepo, the\n>> new version fails if it contains double-quotes.\n> ...\n>>\n>> May I recommend that you run the test suite in a directory named\n>> like this:\n>>\n>> \t$ mkdir \\\"\\ \\$GIT_DIR\\ \\'\n>> \t$ ls\n>> \t\" $GIT_DIR '\n>\n>\n> Eww.  I'm struggling a bit with paths this perverse, actually.\n>\n> For instance, git_editor in git-sh-setup expects the editor path to be\n> pre-quoted.  So in t3404, you need to produce escaped double quotes &\n> dollar signs, resulting in unpleasantness like this :\n>\n> VISUAL=\"`pwd`/fake-editor.sh\"\n> VISUAL=${VISUAL//\\\"/\\\\\\\"}\n> VISUAL=${VISUAL//$/\\\\\\$}\n> VISUAL=\\\"$VISUAL\\\"\n> export VISUAL\n\nEDITORPWD=\"`pwd`\"\nVISUAL='$EDITORPWD/fake-editor.sh'\nexport EDITORPWD VISUAL\n\n-- \nDavid Kastrup\n"},{"id":"56292","messageId":"85sl49ecg1.fsf@lola.goethe.zz","threadId":"10239","inReplyTo":"864pgpfyrd.fsf@lola.quinscape.zz","subject":"Re: [PATCH 2/2] Quoting paths in tests","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-10-17T20:03:10Z","receivedAt":"2007-10-17T20:03:10Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> Jonathan del Strother <maillist@steelskies.com> writes:\n>\n>> For instance, git_editor in git-sh-setup expects the editor path to be\n>> pre-quoted.  So in t3404, you need to produce escaped double quotes &\n>> dollar signs, resulting in unpleasantness like this :\n>>\n>> VISUAL=\"`pwd`/fake-editor.sh\"\n>> VISUAL=${VISUAL//\\\"/\\\\\\\"}\n>> VISUAL=${VISUAL//$/\\\\\\$}\n>> VISUAL=\\\"$VISUAL\\\"\n>> export VISUAL\n>\n> EDITORPWD=\"`pwd`\"\n> VISUAL='$EDITORPWD/fake-editor.sh'\n> export EDITORPWD VISUAL\n\nPffffft.\n\nVISUAL='\"$EDITORPWD/fake-editor.sh\"'\n\nof course.  Or we still have problems with spaces in pwd.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"56358","messageId":"4716F849.3090102@viscovery.net","threadId":"10239","inReplyTo":"6E65762D-FBC4-4A7C-97A9-20F6744E25DE@steelskies.com","subject":"Re: [PATCH 2/2] Quoting paths in tests","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2007-10-18T06:08:09Z","receivedAt":"2007-10-18T06:08:09Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Jonathan del Strother schrieb:\n> \n> On 17 Oct 2007, at 12:32, Johannes Sixt wrote:\n> \n>> Jonathan del Strother schrieb:\n>>> --- a/t/lib-git-svn.sh\n>>> +++ b/t/lib-git-svn.sh\n>>> @@ -25,7 +25,7 @@ perl -w -e \"\n>>> use SVN::Core;\n>>> use SVN::Repos;\n>>> \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n>>> -system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or \n>>> exit(41);\n>>> +system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or \n>>> exit(41);\n>>\n>> Here you have to work harder: The reason is that this is part of a \n>> perl expression (as opposed to an eval'd string), which does not have \n>> access to $svnrepo of the shell by which it is invoked. The original \n>> version failed if there were single-quotes in $svnrepo, the new \n>> version fails if it contains double-quotes.\n\nYou can rewrite this expression as\n     perl -w -e '$svnrepo = shift;\n\t...\n\t$SVN::Core::Version gt \"1.1.0\" ...\n\tsystem(qw/svnadmin create --fs-type fsfs/, $svnrepo) == 0 ...\n\t...\n     ' >&3 2>&4 \"$svnrepo\"\n\ni.e. you pass the repository name as an argument to the scriptlet.\n\n>> May I recommend that you run the test suite in a directory named like \n>> this:\n>>\n>>     $ mkdir \\\"\\ \\$GIT_DIR\\ \\'\n>>     $ ls\n>>     \" $GIT_DIR '\n> \n> \n> Eww.  I'm struggling a bit with paths this perverse, actually.\n> \n> For instance, git_editor in git-sh-setup expects the editor path to be \n> pre-quoted.  So in t3404, you need to produce escaped double quotes & \n> dollar signs, resulting in unpleasantness like this :\n> \n> VISUAL=\"`pwd`/fake-editor.sh\"\n> VISUAL=${VISUAL//\\\"/\\\\\\\"}\n> VISUAL=${VISUAL//$/\\\\\\$}\n\nThis is a bashism - that's a big no-no.\n\n> VISUAL=\\\"$VISUAL\\\"\n> export VISUAL\n> \n> \n> And I'm struggling to come up with neat ways of rewriting things like, \n> eg, this bit from t5500 -\n> test_expect_success \"clone shallow\" \"git-clone --depth 2 \n> \\\"file://`pwd`/.\\\" shallow\"\n> - to handle paths like that properly.\n\nThese examples expand `pwd` too early. Can't you just put everything inside \nsingle-quotes? Although I'm not sure about VISUAL: Is it invoked with $PWD \nthat is different from $PWD when VISUAL is defined? If so, then you can \nhardly delay `pwd`...\n\nI know I'm a bit anal with my criticism. I reviewed your patch because I \nthink fixing for paths with whitespace is worthwhile. However, I also think \nany fix should go the full way and not only shift the problems into a \ndifferent corner. Maybe a word from $maintainer would be in order ;)\n\n-- Hannes\n"},{"id":"57079","messageId":"DCDC05E5-B5D0-4366-9DA8-5AD775B16545@steelskies.com","threadId":"10239","inReplyTo":"4716F849.3090102@viscovery.net","subject":"Re: [PATCH 2/2] Quoting paths in tests","fromName":"Jonathan del Strother","fromEmail":"maillist@steelskies.com","sentAt":"2007-10-24T13:07:23Z","receivedAt":"2007-10-24T13:07:23Z","isPatch":true,"sender":{"key":"jon.delstrother@bestbefore.tv","avatar":"https://gravatar.com/avatar/754e21ab701c00e2d21fc261187254c34b2a1c0b959d9ee5be1a295990be3081?d=mp&s=160"},"body":"On 18 Oct 2007, at 07:08, Johannes Sixt wrote:\n\n> Jonathan del Strother schrieb:\n>> On 17 Oct 2007, at 12:32, Johannes Sixt wrote:\n>>> Jonathan del Strother schrieb:\n>>>> --- a/t/lib-git-svn.sh\n>>>> +++ b/t/lib-git-svn.sh\n>>>> @@ -25,7 +25,7 @@ perl -w -e \"\n>>>> use SVN::Core;\n>>>> use SVN::Repos;\n>>>> \\$SVN::Core::VERSION gt '1.1.0' or exit(42);\n>>>> -system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or  \n>>>> exit(41);\n>>>> +system(qw/svnadmin create --fs-type fsfs/, \\\"$svnrepo\\\") == 0 or  \n>>>> exit(41);\n>>>\n>>> Here you have to work harder: The reason is that this is part of a  \n>>> perl expression (as opposed to an eval'd string), which does not  \n>>> have access to $svnrepo of the shell by which it is invoked. The  \n>>> original version failed if there were single-quotes in $svnrepo,  \n>>> the new version fails if it contains double-quotes.\n>\n> You can rewrite this expression as\n>    perl -w -e '$svnrepo = shift;\n> \t...\n> \t$SVN::Core::Version gt \"1.1.0\" ...\n> \tsystem(qw/svnadmin create --fs-type fsfs/, $svnrepo) == 0 ...\n> \t...\n>    ' >&3 2>&4 \"$svnrepo\"\n>\n> i.e. you pass the repository name as an argument to the scriptlet.\n>\n>>> May I recommend that you run the test suite in a directory named  \n>>> like this:\n>>>\n>>>    $ mkdir \\\"\\ \\$GIT_DIR\\ \\'\n>>>    $ ls\n>>>    \" $GIT_DIR '\n>> Eww.  I'm struggling a bit with paths this perverse, actually.\n>> For instance, git_editor in git-sh-setup expects the editor path to  \n>> be pre-quoted.  So in t3404, you need to produce escaped double  \n>> quotes & dollar signs, resulting in unpleasantness like this :\n>> VISUAL=\"`pwd`/fake-editor.sh\"\n>> VISUAL=${VISUAL//\\\"/\\\\\\\"}\n>> VISUAL=${VISUAL//$/\\\\\\$}\n>\n> This is a bashism - that's a big no-no.\n>\n>> VISUAL=\\\"$VISUAL\\\"\n>> export VISUAL\n>> And I'm struggling to come up with neat ways of rewriting things  \n>> like, eg, this bit from t5500 -\n>> test_expect_success \"clone shallow\" \"git-clone --depth 2 \\\"file:// \n>> `pwd`/.\\\" shallow\"\n>> - to handle paths like that properly.\n>\n> These examples expand `pwd` too early. Can't you just put everything  \n> inside single-quotes? Although I'm not sure about VISUAL: Is it  \n> invoked with $PWD that is different from $PWD when VISUAL is  \n> defined? If so, then you can hardly delay `pwd`...\n>\n> I know I'm a bit anal with my criticism. I reviewed your patch  \n> because I think fixing for paths with whitespace is worthwhile.  \n> However, I also think any fix should go the full way and not only  \n> shift the problems into a different corner. Maybe a word from  \n> $maintainer would be in order ;)\n\nIn theory, I agree that the tests should properly handle perverse  \npaths, but it's beginning to stretch my shell scripting skills.\nSo now our esteemed leader is back in business, any thoughts on how  \nhard we want to work to quote things?\n\nAlso, from \"What's cooking in git.git\" :\n> I have a feeling that this should have forked off of 'maint'.\n> The change looks obvious and trivial, so perhaps after getting a\n> testcase (hint, hint) merge to 'master' and then cherry-pick to\n> 'maint' as well.\nNoted\n\n\nJon del Strother\n"}]}