Code

Merge branch 'bd/tests'
authorJunio C Hamano <gitster@pobox.com>
Wed, 14 May 2008 20:45:16 +0000 (13:45 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 May 2008 20:45:16 +0000 (13:45 -0700)
* bd/tests:
  Rename the test trash directory to contain spaces.
  Fix tests breaking when checkout path contains shell metacharacters
  Don't use the 'export NAME=value' in the test scripts.
  lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters
  test-lib.sh: Fix some missing path quoting
  Use test_set_editor in t9001-send-email.sh
  test-lib.sh: Add a test_set_editor function to safely set $VISUAL
  git-send-email.perl: Handle shell metacharacters in $EDITOR properly
  config.c: Escape backslashes in section names properly
  git-rebase.sh: Fix --merge --abort failures when path contains whitespace

Conflicts:

t/t9115-git-svn-dcommit-funky-renames.sh

57 files changed:
config.c
git-rebase.sh
git-send-email.perl
t/.gitignore
t/lib-git-svn.sh
t/lib-httpd.sh
t/t0000-basic.sh
t/t1020-subdirectory.sh
t/t1303-wacky-config.sh
t/t1500-rev-parse.sh
t/t1501-worktree.sh
t/t3050-subprojects-fetch.sh
t/t3400-rebase.sh
t/t3404-rebase-interactive.sh
t/t3407-rebase-abort.sh
t/t3500-cherry.sh
t/t5500-fetch-pack.sh
t/t5512-ls-remote.sh
t/t5516-fetch-push.sh
t/t5700-clone-reference.sh
t/t5710-info-alternate.sh
t/t6000lib.sh
t/t6010-merge-base.sh
t/t6200-fmt-merge-msg.sh
t/t7003-filter-branch.sh
t/t7004-tag.sh
t/t7010-setup.sh
t/t7300-clean.sh
t/t7501-commit.sh
t/t7504-commit-msg-hook.sh
t/t7505-prepare-commit-msg-hook.sh
t/t9001-send-email.sh
t/t9100-git-svn-basic.sh
t/t9101-git-svn-props.sh
t/t9102-git-svn-deep-rmdir.sh
t/t9103-git-svn-tracked-directory-removed.sh
t/t9104-git-svn-follow-parent.sh
t/t9105-git-svn-commit-diff.sh
t/t9106-git-svn-commit-diff-clobber.sh
t/t9106-git-svn-dcommit-clobber-series.sh
t/t9107-git-svn-migrate.sh
t/t9108-git-svn-glob.sh
t/t9110-git-svn-use-svm-props.sh
t/t9111-git-svn-use-svnsync-props.sh
t/t9112-git-svn-md5less-file.sh
t/t9113-git-svn-dcommit-new-file.sh
t/t9114-git-svn-dcommit-merge.sh
t/t9115-git-svn-dcommit-funky-renames.sh
t/t9116-git-svn-log.sh
t/t9117-git-svn-init-clone.sh
t/t9118-git-svn-funky-branch-names.sh
t/t9120-git-svn-clone-with-percent-escapes.sh
t/t9121-git-svn-fetch-renamed-dir.sh
t/t9400-git-cvsserver-server.sh
t/t9500-gitweb-standalone-no-errors.sh
t/t9600-cvsimport.sh
t/test-lib.sh

index 0e22c7a6423c211b2e2a95b0535b85dc9f234a1f..e42ada78f8b10e7fb5600a6c99f81f27accd42fa 100644 (file)
--- a/config.c
+++ b/config.c
@@ -698,7 +698,7 @@ static int store_write_section(int fd, const char* key)
        if (dot) {
                strbuf_addf(&sb, "[%.*s \"", (int)(dot - key), key);
                for (i = dot - key + 1; i < store.baselen; i++) {
-                       if (key[i] == '"')
+                       if (key[i] == '"' || key[i] == '\\')
                                strbuf_addch(&sb, '\\');
                        strbuf_addch(&sb, key[i]);
                }
index fbb0f288b3243bad5c358c6e8ecfb351aeaa52e8..68855c18ae62ef6f4a3fdacb6f8de9c57511aa79 100755 (executable)
@@ -214,7 +214,7 @@ do
                else
                        die "No rebase in progress?"
                fi
-               git reset --hard $(cat $dotest/orig-head)
+               git reset --hard $(cat "$dotest/orig-head")
                rm -r "$dotest"
                exit
                ;;
index cb05cf5b9ebc41c6d95067037605154c5a83e9b1..1e1d98656d645371612cac02abad4ea33757d40e 100755 (executable)
@@ -513,7 +513,7 @@ EOT
        close(C);
 
        my $editor = $ENV{GIT_EDITOR} || Git::config(@repo, "core.editor") || $ENV{VISUAL} || $ENV{EDITOR} || "vi";
-       system('sh', '-c', '$0 $@', $editor, $compose_filename);
+       system('sh', '-c', $editor.' "$@"', $editor, $compose_filename);
 
        open(C2,">",$compose_filename . ".final")
                or die "Failed to open $compose_filename.final : " . $!;
index fad67c097b08c695c57c376946f3093f487d4358..11ffd910c1b5022e0bd3aa217147269c8e9ac29e 100644 (file)
@@ -1 +1 @@
-trash
+/trash directory
index d8f33557911389ab0e179b70e27d85264ef5ca0a..5d3bd9dda916d454997da0015c35d0fa7d9f72c0 100644 (file)
@@ -20,12 +20,13 @@ then
 fi
 
 svnrepo=$PWD/svnrepo
+export svnrepo
 
 perl -w -e "
 use SVN::Core;
 use SVN::Repos;
 \$SVN::Core::VERSION gt '1.1.0' or exit(42);
-system(qw/svnadmin create --fs-type fsfs/, '$svnrepo') == 0 or exit(41);
+system(qw/svnadmin create --fs-type fsfs/, \$ENV{svnrepo}) == 0 or exit(41);
 " >&3 2>&4
 x=$?
 if test $x -ne 0
index 7f206c56cf89451d09f777bcbd181fefedaabff2..a5c4436fd104e93ca74b11e11bc98238aaf83b29 100644 (file)
@@ -61,7 +61,8 @@ prepare_httpd() {
                        -new -x509 -nodes \
                        -out $HTTPD_ROOT_PATH/httpd.pem \
                        -keyout $HTTPD_ROOT_PATH/httpd.pem
-               export GIT_SSL_NO_VERIFY=t
+               GIT_SSL_NO_VERIFY=t
+               export GIT_SSL_NO_VERIFY
                HTTPD_PARA="$HTTPD_PARA -DSSL"
        else
                HTTPD_URL=http://127.0.0.1:$LIB_HTTPD_PORT
index 27b54cbb1216beef8b5f315708574825a1c81da3..690f80ab27fd9ff6d7e145a86eb22c6f87e3cd76 100755 (executable)
@@ -305,10 +305,10 @@ test_expect_success 'absolute path works as expected' '
        file="$dir"/index &&
        test "$file" = "$(test-absolute-path $dir2/index)" &&
        basename=blub &&
-       test "$dir/$basename" = $(cd .git && test-absolute-path $basename) &&
+       test "$dir/$basename" = "$(cd .git && test-absolute-path "$basename")" &&
        ln -s ../first/file .git/syml &&
        sym="$(cd first; pwd -P)"/file &&
-       test "$sym" = "$(test-absolute-path $dir2/syml)"
+       test "$sym" = "$(test-absolute-path "$dir2/syml")"
 '
 
 test_expect_success 'very long name in the index handled sanely' '
index b9cef3422c3ba1392b32ec66f72dc4b7c34f4a43..fc386ba033ac165a5f4a9fca0c6c6f5db49a314e 100755 (executable)
@@ -21,7 +21,7 @@ LF='
 '
 
 test_expect_success 'update-index and ls-files' '
-       cd $HERE &&
+       cd "$HERE" &&
        git update-index --add one &&
        case "`git ls-files`" in
        one) echo ok one ;;
@@ -41,7 +41,7 @@ test_expect_success 'update-index and ls-files' '
 '
 
 test_expect_success 'cat-file' '
-       cd $HERE &&
+       cd "$HERE" &&
        two=`git ls-files -s dir/two` &&
        two=`expr "$two" : "[0-7]* \\([0-9a-f]*\\)"` &&
        echo "$two" &&
@@ -54,7 +54,7 @@ test_expect_success 'cat-file' '
 rm -f actual dir/actual
 
 test_expect_success 'diff-files' '
-       cd $HERE &&
+       cd "$HERE" &&
        echo a >>one &&
        echo d >>dir/two &&
        case "`git diff-files --name-only`" in
@@ -74,7 +74,7 @@ test_expect_success 'diff-files' '
 '
 
 test_expect_success 'write-tree' '
-       cd $HERE &&
+       cd "$HERE" &&
        top=`git write-tree` &&
        echo $top &&
        cd dir &&
@@ -84,7 +84,7 @@ test_expect_success 'write-tree' '
 '
 
 test_expect_success 'checkout-index' '
-       cd $HERE &&
+       cd "$HERE" &&
        git checkout-index -f -u one &&
        cmp one original.one &&
        cd dir &&
@@ -93,7 +93,7 @@ test_expect_success 'checkout-index' '
 '
 
 test_expect_success 'read-tree' '
-       cd $HERE &&
+       cd "$HERE" &&
        rm -f one dir/two &&
        tree=`git write-tree` &&
        git read-tree --reset -u "$tree" &&
@@ -107,27 +107,27 @@ test_expect_success 'read-tree' '
 '
 
 test_expect_success 'no file/rev ambiguity check inside .git' '
-       cd $HERE &&
+       cd "$HERE" &&
        git commit -a -m 1 &&
-       cd $HERE/.git &&
+       cd "$HERE"/.git &&
        git show -s HEAD
 '
 
 test_expect_success 'no file/rev ambiguity check inside a bare repo' '
-       cd $HERE &&
+       cd "$HERE" &&
        git clone -s --bare .git foo.git &&
        cd foo.git && GIT_DIR=. git show -s HEAD
 '
 
 # This still does not work as it should...
 : test_expect_success 'no file/rev ambiguity check inside a bare repo' '
-       cd $HERE &&
+       cd "$HERE" &&
        git clone -s --bare .git foo.git &&
        cd foo.git && git show -s HEAD
 '
 
 test_expect_success 'detection should not be fooled by a symlink' '
-       cd $HERE &&
+       cd "$HERE" &&
        rm -fr foo.git &&
        git clone -s .git another &&
        ln -s another yetanother &&
index 99985dcd79f12d680c51e8f64d61c47a70b43f36..f366b53fb671a5ef52c34516bc4ab3869a142d8e 100755 (executable)
@@ -34,4 +34,10 @@ test_expect_success 'add key in different section' '
        check section2.key bar
 '
 
+SECTION="test.q\"s\\sq'sp e.key"
+test_expect_success 'make sure git-config escapes section names properly' '
+       git config "$SECTION" bar &&
+       check "$SECTION" bar
+'
+
 test_done
index 38a2bf09af286bf681deadb9cdaec80175d13e0c..85da4caa7ed1b8bcaca7b21e218f2d1839d2db82 100755 (executable)
@@ -51,8 +51,9 @@ test_rev_parse 'core.bare undefined' false false true
 
 mkdir work || exit 1
 cd work || exit 1
-export GIT_DIR=../.git
-export GIT_CONFIG="$(pwd)"/../.git/config
+GIT_DIR=../.git
+GIT_CONFIG="$(pwd)"/../.git/config
+export GIT_DIR GIT_CONFIG
 
 git config core.bare false
 test_rev_parse 'GIT_DIR=../.git, core.bare = false' false false true ''
@@ -64,8 +65,8 @@ git config --unset core.bare
 test_rev_parse 'GIT_DIR=../.git, core.bare undefined' false false true ''
 
 mv ../.git ../repo.git || exit 1
-export GIT_DIR=../repo.git
-export GIT_CONFIG="$(pwd)"/../repo.git/config
+GIT_DIR=../repo.git
+GIT_CONFIG="$(pwd)"/../repo.git/config
 
 git config core.bare false
 test_rev_parse 'GIT_DIR=../repo.git, core.bare = false' false false true ''
index 7ee3820ce97b6c26c9465685a7bc64a962aad3cb..2ee88d8a069288d0d9f6931231162e04d6b0917a 100755 (executable)
@@ -32,24 +32,25 @@ mkdir -p work/sub/dir || exit 1
 mv .git repo.git || exit 1
 
 say "core.worktree = relative path"
-export GIT_DIR=repo.git
-export GIT_CONFIG="$(pwd)"/$GIT_DIR/config
+GIT_DIR=repo.git
+GIT_CONFIG="$(pwd)"/$GIT_DIR/config
+export GIT_DIR GIT_CONFIG
 unset GIT_WORK_TREE
 git config core.worktree ../work
 test_rev_parse 'outside'      false false false
 cd work || exit 1
-export GIT_DIR=../repo.git
-export GIT_CONFIG="$(pwd)"/$GIT_DIR/config
+GIT_DIR=../repo.git
+GIT_CONFIG="$(pwd)"/$GIT_DIR/config
 test_rev_parse 'inside'       false false true ''
 cd sub/dir || exit 1
-export GIT_DIR=../../../repo.git
-export GIT_CONFIG="$(pwd)"/$GIT_DIR/config
+GIT_DIR=../../../repo.git
+GIT_CONFIG="$(pwd)"/$GIT_DIR/config
 test_rev_parse 'subdirectory' false false true sub/dir/
 cd ../../.. || exit 1
 
 say "core.worktree = absolute path"
-export GIT_DIR=$(pwd)/repo.git
-export GIT_CONFIG=$GIT_DIR/config
+GIT_DIR=$(pwd)/repo.git
+GIT_CONFIG=$GIT_DIR/config
 git config core.worktree "$(pwd)/work"
 test_rev_parse 'outside'      false false false
 cd work || exit 1
@@ -59,25 +60,26 @@ test_rev_parse 'subdirectory' false false true sub/dir/
 cd ../../.. || exit 1
 
 say "GIT_WORK_TREE=relative path (override core.worktree)"
-export GIT_DIR=$(pwd)/repo.git
-export GIT_CONFIG=$GIT_DIR/config
+GIT_DIR=$(pwd)/repo.git
+GIT_CONFIG=$GIT_DIR/config
 git config core.worktree non-existent
-export GIT_WORK_TREE=work
+GIT_WORK_TREE=work
+export GIT_WORK_TREE
 test_rev_parse 'outside'      false false false
 cd work || exit 1
-export GIT_WORK_TREE=.
+GIT_WORK_TREE=.
 test_rev_parse 'inside'       false false true ''
 cd sub/dir || exit 1
-export GIT_WORK_TREE=../..
+GIT_WORK_TREE=../..
 test_rev_parse 'subdirectory' false false true sub/dir/
 cd ../../.. || exit 1
 
 mv work repo.git/work
 
 say "GIT_WORK_TREE=absolute path, work tree below git dir"
-export GIT_DIR=$(pwd)/repo.git
-export GIT_CONFIG=$GIT_DIR/config
-export GIT_WORK_TREE=$(pwd)/repo.git/work
+GIT_DIR=$(pwd)/repo.git
+GIT_CONFIG=$GIT_DIR/config
+GIT_WORK_TREE=$(pwd)/repo.git/work
 test_rev_parse 'outside'              false false false
 cd repo.git || exit 1
 test_rev_parse 'in repo.git'              false true  false
index 2b21b1070d6b8f864aee0049d5cb2dccef0daa46..4261e9641e00fb3b543384b6a8dbbcc1a214b598 100755 (executable)
@@ -20,7 +20,7 @@ test_expect_success setup '
 '
 
 test_expect_success clone '
-       git clone file://`pwd`/.git cloned &&
+       git clone "file://$(pwd)/.git" cloned &&
        (git rev-parse HEAD; git ls-files -s) >expected &&
        (
                cd cloned &&
index fdad7dad611b385f05779826bfa74f33d1f28d03..91bb5e1d9eea0b2f1ff7a1120d97ca2876a8f277 100755 (executable)
@@ -9,7 +9,8 @@ This test runs git rebase and checks that the author information is not lost.
 '
 . ./test-lib.sh
 
-export GIT_AUTHOR_EMAIL=bogus_email_address
+GIT_AUTHOR_EMAIL=bogus_email_address
+export GIT_AUTHOR_EMAIL
 
 test_expect_success \
     'prepare repository with topic branches' \
index 9cf873f7ebfa8f8a4fd215cbbb468f955d6a47e3..b9e3dbd242cc92710d1c689ca5412619e46ee63f 100755 (executable)
@@ -91,9 +91,8 @@ for line in $FAKE_LINES; do
 done
 EOF
 
+test_set_editor "$(pwd)/fake-editor.sh"
 chmod a+x fake-editor.sh
-VISUAL="$(pwd)/fake-editor.sh"
-export VISUAL
 
 test_expect_success 'no changes are a nop' '
        git rebase -i F &&
index 37944c39a3be5e8d2db59faa5609d857fe902199..1777ffe8a22d8f9dd28efadd3cb9ea65be9c2178 100755 (executable)
@@ -4,7 +4,13 @@ test_description='git rebase --abort tests'
 
 . ./test-lib.sh
 
+### Test that we handle space characters properly
+work_dir="$(pwd)/test dir"
+
 test_expect_success setup '
+       mkdir -p "$work_dir" &&
+       cd "$work_dir" &&
+       git init &&
        echo a > a &&
        git add a &&
        git commit -m a &&
@@ -28,32 +34,35 @@ testrebase() {
        dotest=$2
 
        test_expect_success "rebase$type --abort" '
+               cd "$work_dir" &&
                # Clean up the state from the previous one
-               git reset --hard pre-rebase
-               test_must_fail git rebase'"$type"' master &&
-               test -d '$dotest' &&
+               git reset --hard pre-rebase &&
+               test_must_fail git rebase$type master &&
+               test -d "$dotest" &&
                git rebase --abort &&
                test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
-               test ! -d '$dotest'
+               test ! -d "$dotest"
        '
 
        test_expect_success "rebase$type --abort after --skip" '
+               cd "$work_dir" &&
                # Clean up the state from the previous one
-               git reset --hard pre-rebase
-               test_must_fail git rebase'"$type"' master &&
-               test -d '$dotest' &&
+               git reset --hard pre-rebase &&
+               test_must_fail git rebase$type master &&
+               test -d "$dotest" &&
                test_must_fail git rebase --skip &&
                test $(git rev-parse HEAD) = $(git rev-parse master) &&
                git-rebase --abort &&
                test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
-               test ! -d '$dotest'
+               test ! -d "$dotest"
        '
 
        test_expect_success "rebase$type --abort after --continue" '
+               cd "$work_dir" &&
                # Clean up the state from the previous one
-               git reset --hard pre-rebase
-               test_must_fail git rebase'"$type"' master &&
-               test -d '$dotest' &&
+               git reset --hard pre-rebase &&
+               test_must_fail git rebase$type master &&
+               test -d "$dotest" &&
                echo c > a &&
                echo d >> a &&
                git add a &&
@@ -61,7 +70,7 @@ testrebase() {
                test $(git rev-parse HEAD) != $(git rev-parse master) &&
                git rebase --abort &&
                test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
-               test ! -d '$dotest'
+               test ! -d "$dotest"
        '
 }
 
index d0a440feba5f501a2320d52b36d1bb51ca8944dd..4911c48378a137471d2ad56747ceed11d0115be5 100755 (executable)
@@ -10,7 +10,8 @@ checks that git cherry only returns the second patch in the local branch
 '
 . ./test-lib.sh
 
-export GIT_AUTHOR_EMAIL=bogus_email_address
+GIT_AUTHOR_EMAIL=bogus_email_address
+export GIT_AUTHOR_EMAIL
 
 test_expect_success \
     'prepare repository with topic branch, and check cherry finds the 2 patches from there' \
index 788b4a5aae17d33ad688446bb60973952c3ca918..140e8745811b9f25abfa2c9c24a0569f8dd39c66 100755 (executable)
@@ -31,7 +31,7 @@ add () {
        sec=$(($sec+1))
        commit=$(echo "$text" | GIT_AUTHOR_DATE=$sec \
                git commit-tree $tree $parents 2>>log2.txt)
-       export $name=$commit
+       eval "$name=$commit; export $name"
        echo $commit > .git/refs/heads/$branch
        eval ${branch}TIP=$commit
 }
@@ -129,7 +129,7 @@ pull_to_client 2nd "B" $((64*3))
 
 pull_to_client 3rd "A" $((1*3)) # old fails
 
-test_expect_success "clone shallow" "git-clone --depth 2 file://`pwd`/. shallow"
+test_expect_success "clone shallow" 'git-clone --depth 2 "file://$(pwd)/." shallow'
 
 (cd shallow; git count-objects -v) > count.shallow
 
index c0dc94909b694439e389ceeeecec82ed36864ec0..1dd8eed5bb3cb0f320a8f0780452e52fa7d8da16 100755 (executable)
@@ -17,7 +17,7 @@ test_expect_success setup '
                git show-ref -d | sed -e "s/ /  /"
        ) >expected.all &&
 
-       git remote add self $(pwd)/.git
+       git remote add self "$(pwd)/.git"
 
 '
 
index 0a757d5b9fe660245ced7749e445eabd0369bcf0..3af03d482727b69e4724d50eaf9ccc5fc8dceeee 100755 (executable)
@@ -105,7 +105,7 @@ test_expect_success 'fetch with insteadOf' '
        (
                TRASH=$(pwd)/ &&
                cd testrepo &&
-               git config url.$TRASH.insteadOf trash/
+               git config "url.$TRASH.insteadOf" trash/ &&
                git config remote.up.url trash/. &&
                git config remote.up.fetch "refs/heads/*:refs/remotes/origin/*" &&
                git fetch up &&
@@ -145,8 +145,8 @@ test_expect_success 'push with wildcard' '
 
 test_expect_success 'push with insteadOf' '
        mk_empty &&
-       TRASH=$(pwd)/ &&
-       git config url.$TRASH.insteadOf trash/ &&
+       TRASH="$(pwd)/" &&
+       git config "url./$TRASH/.insteadOf" trash/ &&
        git push trash/testrepo refs/heads/master:refs/remotes/origin/master &&
        (
                cd testrepo &&
index b6a54867b491ba67e4813fd492a1a8cc16959a21..e5619a9f5c9aae8c9565dd6937c20ce6401d26d4 100755 (executable)
@@ -51,7 +51,7 @@ diff expected current'
 cd "$base_dir"
 
 test_expect_success 'cloning with reference (no -l -s)' \
-'git clone --reference B file://`pwd`/A D'
+'git clone --reference B "file://$(pwd)/A" D'
 
 cd "$base_dir"
 
index 910ccb4fff561360ba7060ab8df71c0349c4207a..ef7127c1b3943a494692ac8027ec321608a31b9c 100755 (executable)
@@ -81,9 +81,9 @@ test_valid_repo'
 cd "$base_dir"
 
 test_expect_success 'breaking of loops' \
-"echo '$base_dir/B/.git/objects' >> '$base_dir'/A/.git/objects/info/alternates&&
+'echo "$base_dir"/B/.git/objects >> "$base_dir"/A/.git/objects/info/alternates&&
 cd C &&
-test_valid_repo"
+test_valid_repo'
 
 cd "$base_dir"
 
index c0baaa536079b1213d83bbf234ac688567c95237..f55627b641682e72d58a2282639ca589b38fa744 100755 (executable)
@@ -49,13 +49,15 @@ as_author()
        shift 1
         _save=$GIT_AUTHOR_EMAIL
 
-       export GIT_AUTHOR_EMAIL="$_author"
+       GIT_AUTHOR_EMAIL="$_author"
+       export GIT_AUTHOR_EMAIL
        "$@"
        if test -z "$_save"
        then
                unset GIT_AUTHOR_EMAIL
        else
-               export GIT_AUTHOR_EMAIL="$_save"
+               GIT_AUTHOR_EMAIL="$_save"
+               export GIT_AUTHOR_EMAIL
        fi
 }
 
@@ -69,7 +71,8 @@ on_committer_date()
 {
     _date=$1
     shift 1
-    export GIT_COMMITTER_DATE="$_date"
+    GIT_COMMITTER_DATE="$_date"
+    export GIT_COMMITTER_DATE
     "$@"
     unset GIT_COMMITTER_DATE
 }
index 96f3d355301cf9e2daf58d219c3cf6cbdd118d82..b6e57b2426728cce308a57315247cd2a66cabf4a 100755 (executable)
@@ -13,10 +13,11 @@ T=$(git write-tree)
 M=1130000000
 Z=+0000
 
-export GIT_COMMITTER_EMAIL=git@comm.iter.xz
-export GIT_COMMITTER_NAME='C O Mmiter'
-export GIT_AUTHOR_NAME='A U Thor'
-export GIT_AUTHOR_EMAIL=git@au.thor.xz
+GIT_COMMITTER_EMAIL=git@comm.iter.xz
+GIT_COMMITTER_NAME='C O Mmiter'
+GIT_AUTHOR_NAME='A U Thor'
+GIT_AUTHOR_EMAIL=git@au.thor.xz
+export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
 
 doit() {
        OFFSET=$1; shift
index bd4e49bf1e979a9b260a2aa23be60d15c911397a..c9bf6fdba3c3495b5215394d568fd8ac5b4f6daf 100755 (executable)
@@ -82,14 +82,14 @@ test_expect_success 'merge-msg test #1' '
        git diff actual expected
 '
 
-cat >expected <<\EOF
-Merge branch 'left' of ../trash
+cat >expected <<EOF
+Merge branch 'left' of ../$test
 EOF
 
 test_expect_success 'merge-msg test #2' '
 
        git checkout master &&
-       git fetch ../trash left &&
+       git fetch ../"$test" left &&
 
        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
        git diff actual expected
index 16df3d4adb1cc6bc970dd79829adbc46492bc66c..1639c7aa9624bf3219afd021daf14c6f07dcfc32 100755 (executable)
@@ -125,7 +125,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '
                 "git ls-files -s | sed \"s-\\t-&newsubdir/-\" |
                  GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \
                        git update-index --index-info &&
-                 mv \$GIT_INDEX_FILE.new \$GIT_INDEX_FILE" directorymoved &&
+                 mv \"\$GIT_INDEX_FILE.new\" \"\$GIT_INDEX_FILE\"" directorymoved &&
        test -z "$(git diff HEAD directorymoved:newsubdir)"'
 
 test_expect_success 'stops when msg filter fails' '
index 1a7141ecd7ad1ffcd5081181548920b6a199ab2c..2dcee7ccc572bbc9b239ff805aede076ff926f49 100755 (executable)
@@ -626,7 +626,8 @@ esac
 
 cp -R ../t7004 ./gpghome
 chmod 0700 gpghome
-export GNUPGHOME="$(pwd)/gpghome"
+GNUPGHOME="$(pwd)/gpghome"
+export GNUPGHOME
 
 get_tag_header signed-tag $commit commit $time >expect
 echo 'A signed tag message' >>expect
index 02cf7c5c9dc5ba9ea66d9dc109a11d300c7bd817..d8a7c798525728ddc8fc5fa9bd8335d8d1f0a710 100755 (executable)
@@ -122,7 +122,7 @@ test_expect_success 'commit using absolute path names' '
 
 test_expect_success 'log using absolute path names' '
        echo bb >>a/b/c/d &&
-       git commit -m "bb" $(pwd)/a/b/c/d &&
+       git commit -m "bb" "$(pwd)/a/b/c/d" &&
 
        git log a/b/c/d >f1.txt &&
        git log "$(pwd)/a/b/c/d" >f2.txt &&
index a50492f7c065d034cb344eac965d51a82cb5a599..bd7723970869aa0ce8f48b83fdc568821fdf737c 100755 (executable)
@@ -112,7 +112,7 @@ test_expect_success 'git-clean with absolute path' '
        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
        would_clean=$(
                cd docs &&
-               git clean -n $(pwd)/../src |
+               git clean -n "$(pwd)/../src" |
                sed -n -e "s|^Would remove ||p"
        ) &&
        test "$would_clean" = ../src/part3.c || {
index 89710afcb5141beee6b02d8a67e66e11c6f15ad0..d3370ff7ff66240f14b8231de7ba0198e73e8deb 100755 (executable)
@@ -79,8 +79,8 @@ test_expect_success \
 
 cat >editor <<\EOF
 #!/bin/sh
-sed -e "s/a file/an amend commit/g" < $1 > $1-
-mv $1- $1
+sed -e "s/a file/an amend commit/g" < "$1" > "$1-"
+mv "$1-" "$1"
 EOF
 chmod 755 editor
 
@@ -99,8 +99,8 @@ test_expect_success \
 
 cat >editor <<\EOF
 #!/bin/sh
-sed -e "s/amend/older/g"  < $1 > $1-
-mv $1- $1
+sed -e "s/amend/older/g"  < "$1" > "$1-"
+mv "$1-" "$1"
 EOF
 chmod 755 editor
 
index eff36aaee32200075f815de43af781cb115ea38e..88577af9535b5ed7027ec2b6b752df3b78d7bab4 100755 (executable)
@@ -19,6 +19,9 @@ cp FAKE_MSG "$1"
 exit 0
 EOF
 chmod +x fake-editor
+
+## Not using test_set_editor here so we can easily ensure the editor variable
+## is only set for the editor tests
 FAKE_EDITOR="$(pwd)/fake-editor"
 export FAKE_EDITOR
 
@@ -27,7 +30,7 @@ test_expect_success 'with no hook (editor)' '
        echo "more foo" >> file &&
        git add file &&
        echo "more foo" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit
 
 '
 
@@ -44,7 +47,7 @@ test_expect_success '--no-verify with no hook (editor)' '
        echo "more bar" > file &&
        git add file &&
        echo "more bar" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
 
 '
 
@@ -71,7 +74,7 @@ test_expect_success 'with succeeding hook (editor)' '
        echo "more more" >> file &&
        git add file &&
        echo "more more" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit
 
 '
 
@@ -88,7 +91,7 @@ test_expect_success '--no-verify with succeeding hook (editor)' '
        echo "even more more" >> file &&
        git add file &&
        echo "even more more" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
 
 '
 
@@ -111,7 +114,7 @@ test_expect_success 'with failing hook (editor)' '
        echo "more another" >> file &&
        git add file &&
        echo "more another" > FAKE_MSG &&
-       ! (GIT_EDITOR="$FAKE_EDITOR" git commit)
+       ! (GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit)
 
 '
 
@@ -128,7 +131,7 @@ test_expect_success '--no-verify with failing hook (editor)' '
        echo "more stuff" >> file &&
        git add file &&
        echo "more stuff" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
 
 '
 
@@ -146,7 +149,7 @@ test_expect_success 'with non-executable hook (editor)' '
        echo "content again" >> file &&
        git add file &&
        echo "content again" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit -m "content again"
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -m "content again"
 
 '
 
@@ -163,7 +166,7 @@ test_expect_success '--no-verify with non-executable hook (editor)' '
        echo "even more content" >> file &&
        git add file &&
        echo "even more content" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
 
 '
 
@@ -193,7 +196,7 @@ test_expect_success 'hook edits commit message (editor)' '
        echo "additional content" >> file &&
        git add file &&
        echo "additional content" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit &&
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit &&
        commit_msg_is "new message"
 
 '
@@ -212,7 +215,7 @@ test_expect_success "hook doesn't edit commit message (editor)" '
        echo "more plus" >> file &&
        git add file &&
        echo "more plus" > FAKE_MSG &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify &&
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify &&
        commit_msg_is "more plus"
 
 '
index 802aa624d0ff6a1add2e1c7e40a651336b450053..cd6c7c834218fd4c46c49396b79da1ddeef42772 100755 (executable)
@@ -18,6 +18,9 @@ cat > fake-editor <<'EOF'
 exit 0
 EOF
 chmod +x fake-editor
+
+## Not using test_set_editor here so we can easily ensure the editor variable
+## is only set for the editor tests
 FAKE_EDITOR="$(pwd)/fake-editor"
 export FAKE_EDITOR
 
@@ -58,7 +61,7 @@ test_expect_success 'with hook (-m editor)' '
 
        echo "more" >> file &&
        git add file &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit -e -m "more more" &&
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -m "more more" &&
        test "`git log -1 --pretty=format:%s`" = message
 
 '
@@ -85,7 +88,7 @@ test_expect_success 'with hook (-F editor)' '
 
        echo "more" >> file &&
        git add file &&
-       (echo more more | GIT_EDITOR="$FAKE_EDITOR" git commit -e -F -) &&
+       (echo more more | GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -F -) &&
        test "`git log -1 --pretty=format:%s`" = message
 
 '
@@ -104,7 +107,7 @@ test_expect_success 'with hook (editor)' '
 
        echo "more more" >> file &&
        git add file &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit &&
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit &&
        test "`git log -1 --pretty=format:%s`" = default
 
 '
@@ -114,7 +117,7 @@ test_expect_success 'with hook (--amend)' '
        head=`git rev-parse HEAD` &&
        echo "more" >> file &&
        git add file &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit --amend &&
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --amend &&
        test "`git log -1 --pretty=format:%s`" = "$head"
 
 '
@@ -124,7 +127,7 @@ test_expect_success 'with hook (-c)' '
        head=`git rev-parse HEAD` &&
        echo "more" >> file &&
        git add file &&
-       GIT_EDITOR="$FAKE_EDITOR" git commit -c $head &&
+       GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head &&
        test "`git log -1 --pretty=format:%s`" = "$head"
 
 '
@@ -139,7 +142,7 @@ test_expect_success 'with failing hook' '
        head=`git rev-parse HEAD` &&
        echo "more" >> file &&
        git add file &&
-       ! GIT_EDITOR="$FAKE_EDITOR" git commit -c $head
+       ! GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head
 
 '
 
@@ -148,7 +151,7 @@ test_expect_success 'with failing hook (--no-verify)' '
        head=`git rev-parse HEAD` &&
        echo "more" >> file &&
        git add file &&
-       ! GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify -c $head
+       ! GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify -c $head
 
 '
 
index af655cf526930734436ad6daee667e661c229a48..04baa61c0485377d033f4a10d2bb8ceeac1a4686 100755 (executable)
@@ -139,15 +139,16 @@ test_expect_success 'Valid In-Reply-To when prompting' '
 
 test_expect_success 'setup fake editor' '
        (echo "#!/bin/sh" &&
-        echo "echo fake edit >>\$1"
+        echo "echo fake edit >>\"\$1\""
        ) >fake-editor &&
        chmod +x fake-editor
 '
 
+test_set_editor "$(pwd)/fake-editor"
+
 test_expect_success '--compose works' '
        clean_fake_sendmail &&
        echo y | \
-               GIT_EDITOR=$(pwd)/fake-editor \
                GIT_SEND_EMAIL_NOTTY=1 \
                git send-email \
                --compose --subject foo \
index 4e24ab3a7db96d396c108dd0cbe677aa067c9460..bdf29c17344051e5c65d61994744f5432ddf8ae3 100755 (executable)
@@ -20,39 +20,39 @@ esac
 echo 'define NO_SVN_TESTS to skip git-svn tests'
 
 test_expect_success \
-    'initialize git-svn' "
+    'initialize git-svn' '
        mkdir import &&
        cd import &&
        echo foo > foo &&
        ln -s foo foo.link
        mkdir -p dir/a/b/c/d/e &&
-       echo 'deep dir' > dir/a/b/c/d/e/file &&
+       echo "deep dir" > dir/a/b/c/d/e/file &&
        mkdir bar &&
-       echo 'zzz' > bar/zzz &&
-       echo '#!/bin/sh' > exec.sh &&
+       echo "zzz" > bar/zzz &&
+       echo "#!/bin/sh" > exec.sh &&
        chmod +x exec.sh &&
-       svn import -m 'import for git-svn' . $svnrepo >/dev/null &&
+       svn import -m "import for git-svn" . "$svnrepo" >/dev/null &&
        cd .. &&
        rm -rf import &&
-       git-svn init $svnrepo"
+       git-svn init "$svnrepo"'
 
 test_expect_success \
     'import an SVN revision into git' \
     'git-svn fetch'
 
-test_expect_success "checkout from svn" "svn co $svnrepo '$SVN_TREE'"
+test_expect_success "checkout from svn" 'svn co "$svnrepo" "$SVN_TREE"'
 
 name='try a deep --rmdir with a commit'
-test_expect_success "$name" "
+test_expect_success "$name" '
        git checkout -f -b mybranch remotes/git-svn &&
        mv dir/a/b/c/d/e/file dir/file &&
        cp dir/file file &&
        git update-index --add --remove dir/a/b/c/d/e/file dir/file file &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        git-svn set-tree --find-copies-harder --rmdir \
                remotes/git-svn..mybranch &&
-       svn up '$SVN_TREE' &&
-       test -d '$SVN_TREE'/dir && test ! -d '$SVN_TREE'/dir/a"
+       svn up "$SVN_TREE" &&
+       test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a'
 
 
 name='detect node change from file to directory #1'
@@ -68,108 +68,108 @@ test_expect_success "$name" "
 
 
 name='detect node change from directory to file #1'
-test_expect_success "$name" "
-       rm -rf dir '$GIT_DIR'/index &&
+test_expect_success "$name" '
+       rm -rf dir "$GIT_DIR"/index &&
        git checkout -f -b mybranch2 remotes/git-svn &&
        mv bar/zzz zzz &&
        rm -rf bar &&
        mv zzz bar &&
        git update-index --remove -- bar/zzz &&
        git update-index --add -- bar &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        ! git-svn set-tree --find-copies-harder --rmdir \
-               remotes/git-svn..mybranch2" || true
+               remotes/git-svn..mybranch2' || true
 
 
 name='detect node change from file to directory #2'
-test_expect_success "$name" "
-       rm -f '$GIT_DIR'/index &&
+test_expect_success "$name" '
+       rm -f "$GIT_DIR"/index &&
        git checkout -f -b mybranch3 remotes/git-svn &&
        rm bar/zzz &&
        git update-index --remove bar/zzz &&
        mkdir bar/zzz &&
        echo yyy > bar/zzz/yyy &&
        git update-index --add bar/zzz/yyy &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        ! git-svn set-tree --find-copies-harder --rmdir \
-               remotes/git-svn..mybranch3" || true
+               remotes/git-svn..mybranch3' || true
 
 
 name='detect node change from directory to file #2'
-test_expect_success "$name" "
-       rm -f '$GIT_DIR'/index &&
+test_expect_success "$name" '
+       rm -f "$GIT_DIR"/index &&
        git checkout -f -b mybranch4 remotes/git-svn &&
        rm -rf dir &&
        git update-index --remove -- dir/file &&
        touch dir &&
        echo asdf > dir &&
        git update-index --add -- dir &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        ! git-svn set-tree --find-copies-harder --rmdir \
-               remotes/git-svn..mybranch4" || true
+               remotes/git-svn..mybranch4' || true
 
 
 name='remove executable bit from a file'
-test_expect_success "$name" "
-       rm -f '$GIT_DIR'/index &&
+test_expect_success "$name" '
+       rm -f "$GIT_DIR"/index &&
        git checkout -f -b mybranch5 remotes/git-svn &&
        chmod -x exec.sh &&
        git update-index exec.sh &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        git-svn set-tree --find-copies-harder --rmdir \
                remotes/git-svn..mybranch5 &&
-       svn up '$SVN_TREE' &&
-       test ! -x '$SVN_TREE'/exec.sh"
+       svn up "$SVN_TREE" &&
+       test ! -x "$SVN_TREE"/exec.sh'
 
 
 name='add executable bit back file'
-test_expect_success "$name" "
+test_expect_success "$name" '
        chmod +x exec.sh &&
        git update-index exec.sh &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        git-svn set-tree --find-copies-harder --rmdir \
                remotes/git-svn..mybranch5 &&
-       svn up '$SVN_TREE' &&
-       test -x '$SVN_TREE'/exec.sh"
+       svn up "$SVN_TREE" &&
+       test -x "$SVN_TREE"/exec.sh'
 
 
 name='executable file becomes a symlink to bar/zzz (file)'
-test_expect_success "$name" "
+test_expect_success "$name" '
        rm exec.sh &&
        ln -s bar/zzz exec.sh &&
        git update-index exec.sh &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        git-svn set-tree --find-copies-harder --rmdir \
                remotes/git-svn..mybranch5 &&
-       svn up '$SVN_TREE' &&
-       test -L '$SVN_TREE'/exec.sh"
+       svn up "$SVN_TREE" &&
+       test -L "$SVN_TREE"/exec.sh'
 
 name='new symlink is added to a file that was also just made executable'
 
-test_expect_success "$name" "
+test_expect_success "$name" '
        chmod +x bar/zzz &&
        ln -s bar/zzz exec-2.sh &&
        git update-index --add bar/zzz exec-2.sh &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        git-svn set-tree --find-copies-harder --rmdir \
                remotes/git-svn..mybranch5 &&
-       svn up '$SVN_TREE' &&
-       test -x '$SVN_TREE'/bar/zzz &&
-       test -L '$SVN_TREE'/exec-2.sh"
+       svn up "$SVN_TREE" &&
+       test -x "$SVN_TREE"/bar/zzz &&
+       test -L "$SVN_TREE"/exec-2.sh'
 
 name='modify a symlink to become a file'
-test_expect_success "$name" "
+test_expect_success "$name" '
        echo git help > help || true &&
        rm exec-2.sh &&
        cp help exec-2.sh &&
        git update-index exec-2.sh &&
-       git commit -m '$name' &&
+       git commit -m "$name" &&
        git-svn set-tree --find-copies-harder --rmdir \
                remotes/git-svn..mybranch5 &&
-       svn up '$SVN_TREE' &&
-       test -f '$SVN_TREE'/exec-2.sh &&
-       test ! -L '$SVN_TREE'/exec-2.sh &&
-       git diff help $SVN_TREE/exec-2.sh"
+       svn up "$SVN_TREE" &&
+       test -f "$SVN_TREE"/exec-2.sh &&
+       test ! -L "$SVN_TREE"/exec-2.sh &&
+       git diff help "$SVN_TREE"/exec-2.sh'
 
 if test "$have_utf8" = t
 then
@@ -190,10 +190,10 @@ name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'
 GIT_SVN_ID=alt
 export GIT_SVN_ID
 test_expect_success "$name" \
-    "git-svn init $svnrepo && git-svn fetch &&
+    'git-svn init "$svnrepo" && git-svn fetch &&
      git rev-list --pretty=raw remotes/git-svn | grep ^tree | uniq > a &&
      git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&
-     git diff a b"
+     git diff a b'
 
 name='check imported tree checksums expected tree checksums'
 rm -f expected
@@ -219,22 +219,22 @@ test_expect_success 'exit if remote refs are ambigious' "
        ! git-svn migrate
 "
 
-test_expect_success 'exit if init-ing a would clobber a URL' "
-        svnadmin create ${PWD}/svnrepo2 &&
-        svn mkdir -m 'mkdir bar' ${svnrepo}2/bar &&
+test_expect_success 'exit if init-ing a would clobber a URL' '
+        svnadmin create "${PWD}/svnrepo2" &&
+        svn mkdir -m "mkdir bar" "${svnrepo}2/bar" &&
         git config --unset svn-remote.svn.fetch \
-                                '^bar:refs/remotes/git-svn$' &&
-       ! git-svn init ${svnrepo}2/bar
-        "
+                                "^bar:refs/remotes/git-svn$" &&
+       ! git-svn init "${svnrepo}2/bar"
+        '
 
 test_expect_success \
-  'init allows us to connect to another directory in the same repo' "
-        git-svn init --minimize-url -i bar $svnrepo/bar &&
+  'init allows us to connect to another directory in the same repo' '
+        git-svn init --minimize-url -i bar "$svnrepo/bar" &&
         git config --get svn-remote.svn.fetch \
-                              '^bar:refs/remotes/bar$' &&
+                              "^bar:refs/remotes/bar$" &&
         git config --get svn-remote.svn.fetch \
-                              '^:refs/remotes/git-svn$'
-        "
+                              "^:refs/remotes/git-svn$"
+        '
 
 test_expect_success 'able to dcommit to a subdirectory' "
        git-svn fetch -i bar &&
index d7a704754ea13f17c098e56a7b068cb4f44c1fd0..f420796c31db2746b71ba9d7090f37363eba214a 100755 (executable)
@@ -52,7 +52,7 @@ EOF
 cd ..
 
 rm -rf import
-test_expect_success 'checkout working copy from svn' "svn co $svnrepo test_wc"
+test_expect_success 'checkout working copy from svn' 'svn co "$svnrepo" test_wc'
 test_expect_success 'setup some commits to svn' \
        'cd test_wc &&
                echo Greetings >> kw.c &&
@@ -66,7 +66,7 @@ test_expect_success 'setup some commits to svn' \
                svn commit -m "Propset Id" &&
        cd ..'
 
-test_expect_success 'initialize git-svn' "git-svn init $svnrepo"
+test_expect_success 'initialize git-svn' 'git-svn init "$svnrepo"'
 test_expect_success 'fetch revisions from svn' 'git-svn fetch'
 
 name='test svn:keywords ignoring'
@@ -90,9 +90,9 @@ test_expect_success "propset CR on crlf files" \
         cd ..'
 
 test_expect_success 'fetch and pull latest from svn and checkout a new wc' \
-       "git-svn fetch &&
+       'git-svn fetch &&
         git pull . remotes/git-svn &&
-        svn co $svnrepo new_wc"
+        svn co "$svnrepo" new_wc'
 
 for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf
 do
index 4e0808380fea78061e37bc4308f0d7ffeb1cbf5f..0e7ce34b9b1e254873a2700cf58095318b49b15c 100755 (executable)
@@ -2,29 +2,29 @@
 test_description='git-svn rmdir'
 . ./lib-git-svn.sh
 
-test_expect_success 'initialize repo' "
+test_expect_success 'initialize repo' '
        mkdir import &&
        cd import &&
        mkdir -p deeply/nested/directory/number/1 &&
        mkdir -p deeply/nested/directory/number/2 &&
        echo foo > deeply/nested/directory/number/1/file &&
        echo foo > deeply/nested/directory/number/2/another &&
-       svn import -m 'import for git-svn' . $svnrepo &&
+       svn import -m "import for git-svn" . "$svnrepo" &&
        cd ..
-       "
+       '
 
-test_expect_success 'mirror via git-svn' "
-       git-svn init $svnrepo &&
+test_expect_success 'mirror via git-svn' '
+       git-svn init "$svnrepo" &&
        git-svn fetch &&
        git checkout -f -b test-rmdir remotes/git-svn
-       "
+       '
 
-test_expect_success 'Try a commit on rmdir' "
+test_expect_success 'Try a commit on rmdir' '
        git rm -f deeply/nested/directory/number/2/another &&
-       git commit -a -m 'remove another' &&
+       git commit -a -m "remove another" &&
        git-svn set-tree --rmdir HEAD &&
-       svn ls -R $svnrepo | grep ^deeply/nested/directory/number/1
-       "
+       svn ls -R "$svnrepo" | grep ^deeply/nested/directory/number/1
+       '
 
 
 test_done
index 0f0b0fd2c69addc33b91a114a7e294097a494cd5..9ffd8458ef9d58fa5d3c42fd61f4629219b4d80a 100755 (executable)
@@ -10,30 +10,30 @@ test_expect_success 'make history for tracking' '
        mkdir import &&
        mkdir import/trunk &&
        echo hello >> import/trunk/README &&
-       svn import -m initial import $svnrepo &&
+       svn import -m initial import "$svnrepo" &&
        rm -rf import &&
-       svn co $svnrepo/trunk trunk &&
+       svn co "$svnrepo"/trunk trunk &&
        echo bye bye >> trunk/README &&
-       svn rm -m "gone" $svnrepo/trunk &&
+       svn rm -m "gone" "$svnrepo"/trunk &&
        rm -rf trunk &&
        mkdir trunk &&
        echo "new" > trunk/FOLLOWME &&
-       svn import -m "new trunk" trunk $svnrepo/trunk
+       svn import -m "new trunk" trunk "$svnrepo"/trunk
 '
 
 test_expect_success 'clone repo with git' '
-       git svn clone -s $svnrepo x &&
+       git svn clone -s "$svnrepo" x &&
        test -f x/FOLLOWME &&
        test ! -f x/README
 '
 
-test_expect_success 'make sure r2 still has old file' '
+test_expect_success 'make sure r2 still has old file' "
        cd x &&
-               test -n "$(git svn find-rev r1)" &&
-               git reset --hard $(git svn find-rev r1) &&
+               test -n \"\$(git svn find-rev r1)\" &&
+               git reset --hard \$(git svn find-rev r1) &&
                test -f README &&
                test ! -f FOLLOWME &&
-               test x$(git svn find-rev r2) = x
-'
+               test x\$(git svn find-rev r2) = x
+"
 
 test_done
index 7ba76309ac9e57f9e5379bf93ecac4e6a4e4ad96..4d964e2db7cc3c96fc64911bd58c4f2f9679a6cd 100755 (executable)
 test_description='git-svn fetching'
 . ./lib-git-svn.sh
 
-test_expect_success 'initialize repo' "
+test_expect_success 'initialize repo' '
        mkdir import &&
        cd import &&
        mkdir -p trunk &&
        echo hello > trunk/readme &&
-       svn import -m 'initial' . $svnrepo &&
+       svn import -m "initial" . "$svnrepo" &&
        cd .. &&
-       svn co $svnrepo wc &&
+       svn co "$svnrepo" wc &&
        cd wc &&
        echo world >> trunk/readme &&
        poke trunk/readme &&
-       svn commit -m 'another commit' &&
+       svn commit -m "another commit" &&
        svn up &&
        svn mv trunk thunk &&
        echo goodbye >> thunk/readme &&
        poke thunk/readme &&
-       svn commit -m 'bye now' &&
+       svn commit -m "bye now" &&
        cd ..
-       "
+       '
 
-test_expect_success 'init and fetch a moved directory' "
-       git-svn init --minimize-url -i thunk $svnrepo/thunk &&
+test_expect_success 'init and fetch a moved directory' '
+       git-svn init --minimize-url -i thunk "$svnrepo"/thunk &&
        git-svn fetch -i thunk &&
-       test \"\`git rev-parse --verify refs/remotes/thunk@2\`\" \
-           = \"\`git rev-parse --verify refs/remotes/thunk~1\`\" &&
-        test \"\`git cat-file blob refs/remotes/thunk:readme |\
-                 sed -n -e '3p'\`\" = goodbye &&
-       test -z \"\`git config --get svn-remote.svn.fetch \
-                '^trunk:refs/remotes/thunk@2$'\`\"
-       "
+       test "`git rev-parse --verify refs/remotes/thunk@2`" \
+           = "`git rev-parse --verify refs/remotes/thunk~1`" &&
+        test "`git cat-file blob refs/remotes/thunk:readme |\
+                 sed -n -e "3p"`" = goodbye &&
+       test -z "`git config --get svn-remote.svn.fetch \
+                "^trunk:refs/remotes/thunk@2$"`"
+       '
 
-test_expect_success 'init and fetch from one svn-remote' "
-        git config svn-remote.svn.url $svnrepo &&
+test_expect_success 'init and fetch from one svn-remote' '
+        git config svn-remote.svn.url "$svnrepo" &&
         git config --add svn-remote.svn.fetch \
           trunk:refs/remotes/svn/trunk &&
         git config --add svn-remote.svn.fetch \
           thunk:refs/remotes/svn/thunk &&
         git-svn fetch -i svn/thunk &&
-       test \"\`git rev-parse --verify refs/remotes/svn/trunk\`\" \
-           = \"\`git rev-parse --verify refs/remotes/svn/thunk~1\`\" &&
-        test \"\`git cat-file blob refs/remotes/svn/thunk:readme |\
-                 sed -n -e '3p'\`\" = goodbye
-        "
+       test "`git rev-parse --verify refs/remotes/svn/trunk`" \
+           = "`git rev-parse --verify refs/remotes/svn/thunk~1`" &&
+        test "`git cat-file blob refs/remotes/svn/thunk:readme |\
+                 sed -n -e "3p"`" = goodbye
+        '
 
-test_expect_success 'follow deleted parent' "
-        (svn cp -m 'resurrecting trunk as junk' \
-               $svnrepo/trunk@2 $svnrepo/junk ||
-         svn cp -m 'resurrecting trunk as junk' \
-               -r2 $svnrepo/trunk $svnrepo/junk) &&
+test_expect_success 'follow deleted parent' '
+        (svn cp -m "resurrecting trunk as junk" \
+               "$svnrepo"/trunk@2 "$svnrepo"/junk ||
+         svn cp -m "resurrecting trunk as junk" \
+               -r2 "$svnrepo"/trunk "$svnrepo"/junk) &&
         git config --add svn-remote.svn.fetch \
           junk:refs/remotes/svn/junk &&
         git-svn fetch -i svn/thunk &&
         git-svn fetch -i svn/junk &&
-        test -z \"\`git diff svn/junk svn/trunk\`\" &&
-        test \"\`git merge-base svn/junk svn/trunk\`\" \
-           = \"\`git rev-parse svn/trunk\`\"
-        "
+        test -z "`git diff svn/junk svn/trunk`" &&
+        test "`git merge-base svn/junk svn/trunk`" \
+           = "`git rev-parse svn/trunk`"
+        '
 
-test_expect_success 'follow larger parent' "
+test_expect_success 'follow larger parent' '
         mkdir -p import/trunk/thunk/bump/thud &&
         echo hi > import/trunk/thunk/bump/thud/file &&
-        svn import -m 'import a larger parent' import $svnrepo/larger-parent &&
-        svn cp -m 'hi' $svnrepo/larger-parent $svnrepo/another-larger &&
+        svn import -m "import a larger parent" import "$svnrepo"/larger-parent &&
+        svn cp -m "hi" "$svnrepo"/larger-parent "$svnrepo"/another-larger &&
         git-svn init --minimize-url -i larger \
-          $svnrepo/another-larger/trunk/thunk/bump/thud &&
+          "$svnrepo"/another-larger/trunk/thunk/bump/thud &&
         git-svn fetch -i larger &&
         git rev-parse --verify refs/remotes/larger &&
         git rev-parse --verify \
            refs/remotes/larger-parent/trunk/thunk/bump/thud &&
-        test \"\`git merge-base \
+        test "`git merge-base \
                  refs/remotes/larger-parent/trunk/thunk/bump/thud \
-                 refs/remotes/larger\`\" = \
-             \"\`git rev-parse refs/remotes/larger\`\"
+                 refs/remotes/larger`" = \
+             "`git rev-parse refs/remotes/larger`"
         true
-        "
+        '
 
-test_expect_success 'follow higher-level parent' "
-        svn mkdir -m 'follow higher-level parent' $svnrepo/blob &&
-        svn co $svnrepo/blob blob &&
+test_expect_success 'follow higher-level parent' '
+        svn mkdir -m "follow higher-level parent" "$svnrepo"/blob &&
+        svn co "$svnrepo"/blob blob &&
         cd blob &&
                 echo hi > hi &&
                 svn add hi &&
-                svn commit -m 'hihi' &&
+                svn commit -m "hihi" &&
                 cd ..
-        svn mkdir -m 'new glob at top level' $svnrepo/glob &&
-        svn mv -m 'move blob down a level' $svnrepo/blob $svnrepo/glob/blob &&
-        git-svn init --minimize-url -i blob $svnrepo/glob/blob &&
+        svn mkdir -m "new glob at top level" "$svnrepo"/glob &&
+        svn mv -m "move blob down a level" "$svnrepo"/blob "$svnrepo"/glob/blob &&
+        git-svn init --minimize-url -i blob "$svnrepo"/glob/blob &&
         git-svn fetch -i blob
-        "
+        '
 
-test_expect_success 'follow deleted directory' "
-       svn mv -m 'bye!' $svnrepo/glob/blob/hi $svnrepo/glob/blob/bye &&
-       svn rm -m 'remove glob' $svnrepo/glob &&
-       git-svn init --minimize-url -i glob $svnrepo/glob &&
+test_expect_success 'follow deleted directory' '
+       svn mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye &&
+       svn rm -m "remove glob" "$svnrepo"/glob &&
+       git-svn init --minimize-url -i glob "$svnrepo"/glob &&
        git-svn fetch -i glob &&
-       test \"\`git cat-file blob refs/remotes/glob:blob/bye\`\" = hi &&
-       test \"\`git ls-tree refs/remotes/glob | wc -l \`\" -eq 1
-       "
+       test "`git cat-file blob refs/remotes/glob:blob/bye`" = hi &&
+       test "`git ls-tree refs/remotes/glob | wc -l `" -eq 1
+       '
 
 # ref: r9270 of the Subversion repository: (http://svn.collab.net/repos/svn)
 # in trunk/subversion/bindings/swig/perl
-test_expect_success 'follow-parent avoids deleting relevant info' "
+test_expect_success 'follow-parent avoids deleting relevant info' '
        mkdir -p import/trunk/subversion/bindings/swig/perl/t &&
        for i in a b c ; do \
-         echo \$i > import/trunk/subversion/bindings/swig/perl/\$i.pm &&
-         echo _\$i > import/trunk/subversion/bindings/swig/perl/t/\$i.t; \
+         echo $i > import/trunk/subversion/bindings/swig/perl/$i.pm &&
+         echo _$i > import/trunk/subversion/bindings/swig/perl/t/$i.t; \
        done &&
-         echo 'bad delete test' > \
+         echo "bad delete test" > \
           import/trunk/subversion/bindings/swig/perl/t/larger-parent &&
-         echo 'bad delete test 2' > \
+         echo "bad delete test 2" > \
           import/trunk/subversion/bindings/swig/perl/another-larger &&
        cd import &&
-         svn import -m 'r9270 test' . $svnrepo/r9270 &&
+         svn import -m "r9270 test" . "$svnrepo"/r9270 &&
        cd .. &&
-       svn co $svnrepo/r9270/trunk/subversion/bindings/swig/perl r9270 &&
+       svn co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 &&
        cd r9270 &&
          svn mkdir native &&
          svn mv t native/t &&
-         for i in a b c; do svn mv \$i.pm native/\$i.pm; done &&
+         for i in a b c; do svn mv $i.pm native/$i.pm; done &&
          echo z >> native/t/c.t &&
          poke native/t/c.t &&
-         svn commit -m 'reorg test' &&
+         svn commit -m "reorg test" &&
        cd .. &&
        git-svn init --minimize-url -i r9270-t \
-         $svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t &&
+         "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t &&
        git-svn fetch -i r9270-t &&
-       test \`git rev-list r9270-t | wc -l\` -eq 2 &&
-       test \"\`git ls-tree --name-only r9270-t~1\`\" = \
-            \"\`git ls-tree --name-only r9270-t\`\"
-       "
+       test `git rev-list r9270-t | wc -l` -eq 2 &&
+       test "`git ls-tree --name-only r9270-t~1`" = \
+            "`git ls-tree --name-only r9270-t`"
+       '
 
-test_expect_success "track initial change if it was only made to parent" "
-       svn cp -m 'wheee!' $svnrepo/r9270/trunk $svnrepo/r9270/drunk &&
+test_expect_success "track initial change if it was only made to parent" '
+       svn cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk &&
        git-svn init --minimize-url -i r9270-d \
-         $svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t &&
+         "$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t &&
        git-svn fetch -i r9270-d &&
-       test \`git rev-list r9270-d | wc -l\` -eq 3 &&
-       test \"\`git ls-tree --name-only r9270-t\`\" = \
-            \"\`git ls-tree --name-only r9270-d\`\" &&
-       test \"\`git rev-parse r9270-t\`\" = \
-            \"\`git rev-parse r9270-d~1\`\"
-       "
+       test `git rev-list r9270-d | wc -l` -eq 3 &&
+       test "`git ls-tree --name-only r9270-t`" = \
+            "`git ls-tree --name-only r9270-d`" &&
+       test "`git rev-parse r9270-t`" = \
+            "`git rev-parse r9270-d~1`"
+       '
 
-test_expect_success "track multi-parent paths" "
-       svn cp -m 'resurrect /glob' $svnrepo/r9270 $svnrepo/glob &&
+test_expect_success "track multi-parent paths" '
+       svn cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob &&
        git-svn multi-fetch &&
-       test \`git cat-file commit refs/remotes/glob | \
-              grep '^parent ' | wc -l\` -eq 2
-       "
+       test `git cat-file commit refs/remotes/glob | \
+              grep "^parent " | wc -l` -eq 2
+       '
 
 test_expect_success "multi-fetch continues to work" "
        git-svn multi-fetch
        "
 
-test_expect_success "multi-fetch works off a 'clean' repository" "
-       rm -r $GIT_DIR/svn $GIT_DIR/refs/remotes $GIT_DIR/logs &&
-       mkdir $GIT_DIR/svn &&
+test_expect_success "multi-fetch works off a 'clean' repository" '
+       rm -r "$GIT_DIR/svn" "$GIT_DIR/refs/remotes" "$GIT_DIR/logs" &&
+       mkdir "$GIT_DIR/svn" &&
        git-svn multi-fetch
-       "
+       '
 
 test_debug 'gitk --all &'
 
index 318e172ef5e8f20d3552f272c6c256f5c2677c68..63230367bb1566384e66e1b5ddd6a68e1ae98c8f 100755 (executable)
@@ -4,18 +4,18 @@
 test_description='git-svn commit-diff'
 . ./lib-git-svn.sh
 
-test_expect_success 'initialize repo' "
+test_expect_success 'initialize repo' '
        mkdir import &&
        cd import &&
        echo hello > readme &&
-       svn import -m 'initial' . $svnrepo &&
+       svn import -m "initial" . "$svnrepo" &&
        cd .. &&
        echo hello > readme &&
        git update-index --add readme &&
-       git commit -a -m 'initial' &&
+       git commit -a -m "initial" &&
        echo world >> readme &&
-       git commit -a -m 'another'
-       "
+       git commit -a -m "another"
+       '
 
 head=`git rev-parse --verify HEAD^0`
 prev=`git rev-parse --verify HEAD^1`
@@ -24,20 +24,20 @@ prev=`git rev-parse --verify HEAD^1`
 # commit, so only a basic test of functionality is needed since we've
 # already tested commit extensively elsewhere
 
-test_expect_success 'test the commit-diff command' "
-       test -n '$prev' && test -n '$head' &&
-       git-svn commit-diff -r1 '$prev' '$head' '$svnrepo' &&
-       svn co $svnrepo wc &&
+test_expect_success 'test the commit-diff command' '
+       test -n "$prev" && test -n "$head" &&
+       git-svn commit-diff -r1 "$prev" "$head" "$svnrepo" &&
+       svn co "$svnrepo" wc &&
        cmp readme wc/readme
-       "
+       '
 
-test_expect_success 'commit-diff to a sub-directory (with git-svn config)' "
-       svn import -m 'sub-directory' import $svnrepo/subdir &&
-       git-svn init --minimize-url $svnrepo/subdir &&
+test_expect_success 'commit-diff to a sub-directory (with git-svn config)' '
+       svn import -m "sub-directory" import "$svnrepo"/subdir &&
+       git-svn init --minimize-url "$svnrepo"/subdir &&
        git-svn fetch &&
-       git-svn commit-diff -r3 '$prev' '$head' &&
-       svn cat $svnrepo/subdir/readme > readme.2 &&
+       git-svn commit-diff -r3 "$prev" "$head" &&
+       svn cat "$svnrepo"/subdir/readme > readme.2 &&
        cmp readme readme.2
-       "
+       '
 
 test_done
index f74ab1269e3fa79a34aa9f9a3a64df08728e6354..58a3a7b1c333131051282acbae71dc6a1cb16b13 100755 (executable)
@@ -4,56 +4,56 @@
 test_description='git-svn commit-diff clobber'
 . ./lib-git-svn.sh
 
-test_expect_success 'initialize repo' "
+test_expect_success 'initialize repo' '
        mkdir import &&
        cd import &&
        echo initial > file &&
-       svn import -m 'initial' . $svnrepo &&
+       svn import -m "initial" . "$svnrepo" &&
        cd .. &&
        echo initial > file &&
        git update-index --add file &&
-       git commit -a -m 'initial'
-       "
-test_expect_success 'commit change from svn side' "
-       svn co $svnrepo t.svn &&
+       git commit -a -m "initial"
+       '
+test_expect_success 'commit change from svn side' '
+       svn co "$svnrepo" t.svn &&
        cd t.svn &&
        echo second line from svn >> file &&
        poke file &&
-       svn commit -m 'second line from svn' &&
+       svn commit -m "second line from svn" &&
        cd .. &&
        rm -rf t.svn
-       "
+       '
 
-test_expect_success 'commit conflicting change from git' "
+test_expect_success 'commit conflicting change from git' '
        echo second line from git >> file &&
-       git commit -a -m 'second line from git' &&
-       ! git-svn commit-diff -r1 HEAD~1 HEAD $svnrepo
-"
+       git commit -a -m "second line from git" &&
+       ! git-svn commit-diff -r1 HEAD~1 HEAD "$svnrepo"
+'
 
-test_expect_success 'commit complementing change from git' "
+test_expect_success 'commit complementing change from git' '
        git reset --hard HEAD~1 &&
        echo second line from svn >> file &&
-       git commit -a -m 'second line from svn' &&
+       git commit -a -m "second line from svn" &&
        echo third line from git >> file &&
-       git commit -a -m 'third line from git' &&
-       git-svn commit-diff -r2 HEAD~1 HEAD $svnrepo
-       "
+       git commit -a -m "third line from git" &&
+       git-svn commit-diff -r2 HEAD~1 HEAD "$svnrepo"
+       '
 
-test_expect_success 'dcommit fails to commit because of conflict' "
-       git-svn init $svnrepo &&
+test_expect_success 'dcommit fails to commit because of conflict' '
+       git-svn init "$svnrepo" &&
        git-svn fetch &&
        git reset --hard refs/remotes/git-svn &&
-       svn co $svnrepo t.svn &&
+       svn co "$svnrepo" t.svn &&
        cd t.svn &&
        echo fourth line from svn >> file &&
        poke file &&
-       svn commit -m 'fourth line from svn' &&
+       svn commit -m "fourth line from svn" &&
        cd .. &&
        rm -rf t.svn &&
-       echo 'fourth line from git' >> file &&
-       git commit -a -m 'fourth line from git' &&
+       echo "fourth line from git" >> file &&
+       git commit -a -m "fourth line from git" &&
        ! git-svn dcommit
-       "
+       '
 
 test_expect_success 'dcommit does the svn equivalent of an index merge' "
        git reset --hard refs/remotes/git-svn &&
@@ -66,15 +66,15 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' "
        git-svn dcommit
        "
 
-test_expect_success 'commit another change from svn side' "
-       svn co $svnrepo t.svn &&
+test_expect_success 'commit another change from svn side' '
+       svn co "$svnrepo" t.svn &&
        cd t.svn &&
                echo third line from svn >> file &&
                poke file &&
-               svn commit -m 'third line from svn' &&
+               svn commit -m "third line from svn" &&
        cd .. &&
        rm -rf t.svn
-       "
+       '
 
 test_expect_success 'multiple dcommit from git-svn will not clobber svn' "
        git reset --hard refs/remotes/git-svn &&
index ca8a00ed0af0382c20a4883e5aa5f1914b6ecd3f..a400dc796666e820c27dd6989ef9ee1b9922fad3 100755 (executable)
@@ -4,30 +4,30 @@
 test_description='git-svn dcommit clobber series'
 . ./lib-git-svn.sh
 
-test_expect_success 'initialize repo' "
+test_expect_success 'initialize repo' '
        mkdir import &&
        cd import &&
-       awk 'BEGIN { for (i = 1; i < 64; i++) { print i } }' > file
-       svn import -m 'initial' . $svnrepo &&
+       awk "BEGIN { for (i = 1; i < 64; i++) { print i } }" > file
+       svn import -m "initial" . "$svnrepo" &&
        cd .. &&
-       git svn init $svnrepo &&
+       git svn init "$svnrepo" &&
        git svn fetch &&
        test -e file
-       "
+       '
 
-test_expect_success '(supposedly) non-conflicting change from SVN' "
-       test x\"\`sed -n -e 58p < file\`\" = x58 &&
-       test x\"\`sed -n -e 61p < file\`\" = x61 &&
-       svn co $svnrepo tmp &&
+test_expect_success '(supposedly) non-conflicting change from SVN' '
+       test x"`sed -n -e 58p < file`" = x58 &&
+       test x"`sed -n -e 61p < file`" = x61 &&
+       svn co "$svnrepo" tmp &&
        cd tmp &&
-               perl -i -p -e 's/^58\$/5588/' file &&
-               perl -i -p -e 's/^61\$/6611/' file &&
+               perl -i -p -e "s/^58$/5588/" file &&
+               perl -i -p -e "s/^61$/6611/" file &&
                poke file &&
-               test x\"\`sed -n -e 58p < file\`\" = x5588 &&
-               test x\"\`sed -n -e 61p < file\`\" = x6611 &&
-               svn commit -m '58 => 5588, 61 => 6611' &&
+               test x"`sed -n -e 58p < file`" = x5588 &&
+               test x"`sed -n -e 61p < file`" = x6611 &&
+               svn commit -m "58 => 5588, 61 => 6611" &&
                cd ..
-       "
+       '
 
 test_expect_success 'some unrelated changes to git' "
        echo hi > life &&
index 0a41d52c7a734c530cd93e8f536aa9a0a8b5a3f6..d9b553ad55b1f7024af0689a450a9c6c65dcb034 100755 (executable)
@@ -3,61 +3,61 @@
 test_description='git-svn metadata migrations from previous versions'
 . ./lib-git-svn.sh
 
-test_expect_success 'setup old-looking metadata' "
-       cp $GIT_DIR/config $GIT_DIR/config-old-git-svn &&
+test_expect_success 'setup old-looking metadata' '
+       cp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn &&
        mkdir import &&
        cd import &&
                for i in trunk branches/a branches/b \
                         tags/0.1 tags/0.2 tags/0.3; do
-                       mkdir -p \$i && \
-                       echo hello >> \$i/README || exit 1
+                       mkdir -p $i && \
+                       echo hello >> $i/README || exit 1
                done && \
-               svn import -m test . $svnrepo
+               svn import -m test . "$svnrepo"
                cd .. &&
-       git-svn init $svnrepo &&
+       git-svn init "$svnrepo" &&
        git-svn fetch &&
-       mv $GIT_DIR/svn/* $GIT_DIR/ &&
-       mv $GIT_DIR/svn/.metadata $GIT_DIR/ &&
-       rmdir $GIT_DIR/svn &&
+       mv "$GIT_DIR"/svn/* "$GIT_DIR"/ &&
+       mv "$GIT_DIR"/svn/.metadata "$GIT_DIR"/ &&
+       rmdir "$GIT_DIR"/svn &&
        git update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&
        git update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&
        git update-ref -d refs/remotes/git-svn refs/remotes/git-svn
-       "
+       '
 
 head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`
 test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'"
 
-test_expect_success 'initialize old-style (v0) git-svn layout' "
-       mkdir -p $GIT_DIR/git-svn/info $GIT_DIR/svn/info &&
-       echo $svnrepo > $GIT_DIR/git-svn/info/url &&
-       echo $svnrepo > $GIT_DIR/svn/info/url &&
+test_expect_success 'initialize old-style (v0) git-svn layout' '
+       mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info &&
+       echo "$svnrepo" > "$GIT_DIR"/git-svn/info/url &&
+       echo "$svnrepo" > "$GIT_DIR"/svn/info/url &&
        git-svn migrate &&
-       ! test -d $GIT_DIR/git-svn &&
+       ! test -d "$GIT_DIR"/git-svn &&
        git rev-parse --verify refs/remotes/git-svn^0 &&
        git rev-parse --verify refs/remotes/svn^0 &&
-       test \`git config --get svn-remote.svn.url\` = '$svnrepo' &&
-       test \`git config --get svn-remote.svn.fetch\` = \
-             ':refs/remotes/git-svn'
-       "
+       test "$(git config --get svn-remote.svn.url)" = "$svnrepo" &&
+       test `git config --get svn-remote.svn.fetch` = \
+             ":refs/remotes/git-svn"
+       '
 
-test_expect_success 'initialize a multi-repository repo' "
-       git-svn init $svnrepo -T trunk -t tags -b branches &&
+test_expect_success 'initialize a multi-repository repo' '
+       git-svn init "$svnrepo" -T trunk -t tags -b branches &&
        git config --get-all svn-remote.svn.fetch > fetch.out &&
-       grep '^trunk:refs/remotes/trunk$' fetch.out &&
-       test -n \"\`git config --get svn-remote.svn.branches \
-                   '^branches/\*:refs/remotes/\*$'\`\" &&
-       test -n \"\`git config --get svn-remote.svn.tags \
-                   '^tags/\*:refs/remotes/tags/\*$'\`\" &&
+       grep "^trunk:refs/remotes/trunk$" fetch.out &&
+       test -n "`git config --get svn-remote.svn.branches \
+                   "^branches/\*:refs/remotes/\*$"`" &&
+       test -n "`git config --get svn-remote.svn.tags \
+                   "^tags/\*:refs/remotes/tags/\*$"`" &&
        git config --unset svn-remote.svn.branches \
-                               '^branches/\*:refs/remotes/\*$' &&
+                               "^branches/\*:refs/remotes/\*$" &&
        git config --unset svn-remote.svn.tags \
-                               '^tags/\*:refs/remotes/tags/\*$' &&
-       git config --add svn-remote.svn.fetch 'branches/a:refs/remotes/a' &&
-       git config --add svn-remote.svn.fetch 'branches/b:refs/remotes/b' &&
+                               "^tags/\*:refs/remotes/tags/\*$" &&
+       git config --add svn-remote.svn.fetch "branches/a:refs/remotes/a" &&
+       git config --add svn-remote.svn.fetch "branches/b:refs/remotes/b" &&
        for i in tags/0.1 tags/0.2 tags/0.3; do
                git config --add svn-remote.svn.fetch \
-                                \$i:refs/remotes/\$i || exit 1; done
-       "
+                                $i:refs/remotes/$i || exit 1; done
+       '
 
 # refs should all be different, but the trees should all be the same:
 test_expect_success 'multi-fetch works on partial urls + paths' "
@@ -73,43 +73,43 @@ test_expect_success 'multi-fetch works on partial urls + paths' "
                                 refs/remotes/\$j\`\" ||exit 1; done; done
        "
 
-test_expect_success 'migrate --minimize on old inited layout' "
+test_expect_success 'migrate --minimize on old inited layout' '
        git config --unset-all svn-remote.svn.fetch &&
        git config --unset-all svn-remote.svn.url &&
-       rm -rf $GIT_DIR/svn &&
-       for i in \`cat fetch.out\`; do
-               path=\`expr \$i : '\\([^:]*\\):.*$'\`
-               ref=\`expr \$i : '[^:]*:refs/remotes/\\(.*\\)$'\`
-               if test -z \"\$ref\"; then continue; fi
-               if test -n \"\$path\"; then path=\"/\$path\"; fi
-               ( mkdir -p $GIT_DIR/svn/\$ref/info/ &&
-               echo $svnrepo\$path > $GIT_DIR/svn/\$ref/info/url ) || exit 1;
+       rm -rf "$GIT_DIR"/svn &&
+       for i in `cat fetch.out`; do
+               path=`expr $i : "\([^:]*\):.*$"`
+               ref=`expr $i : "[^:]*:refs/remotes/\(.*\)$"`
+               if test -z "$ref"; then continue; fi
+               if test -n "$path"; then path="/$path"; fi
+               ( mkdir -p "$GIT_DIR"/svn/$ref/info/ &&
+               echo "$svnrepo"$path > "$GIT_DIR"/svn/$ref/info/url ) || exit 1;
        done &&
        git-svn migrate --minimize &&
-       test -z \"\`git config -l |grep -v '^svn-remote\.git-svn\.'\`\" &&
+       test -z "`git config -l |grep -v "^svn-remote\.git-svn\."`" &&
        git config --get-all svn-remote.svn.fetch > fetch.out &&
-       grep '^trunk:refs/remotes/trunk$' fetch.out &&
-       grep '^branches/a:refs/remotes/a$' fetch.out &&
-       grep '^branches/b:refs/remotes/b$' fetch.out &&
-       grep '^tags/0\.1:refs/remotes/tags/0\.1$' fetch.out &&
-       grep '^tags/0\.2:refs/remotes/tags/0\.2$' fetch.out &&
-       grep '^tags/0\.3:refs/remotes/tags/0\.3$' fetch.out
-       grep '^:refs/remotes/git-svn' fetch.out
-       "
+       grep "^trunk:refs/remotes/trunk$" fetch.out &&
+       grep "^branches/a:refs/remotes/a$" fetch.out &&
+       grep "^branches/b:refs/remotes/b$" fetch.out &&
+       grep "^tags/0\.1:refs/remotes/tags/0\.1$" fetch.out &&
+       grep "^tags/0\.2:refs/remotes/tags/0\.2$" fetch.out &&
+       grep "^tags/0\.3:refs/remotes/tags/0\.3$" fetch.out
+       grep "^:refs/remotes/git-svn" fetch.out
+       '
 
-test_expect_success  ".rev_db auto-converted to .rev_map.UUID" "
+test_expect_success  ".rev_db auto-converted to .rev_map.UUID" '
        git-svn fetch -i trunk &&
-       test -z \"\$(ls $GIT_DIR/svn/trunk/.rev_db.* 2>/dev/null)\" &&
-       expect=\"\$(ls $GIT_DIR/svn/trunk/.rev_map.*)\" &&
-       test -n \"\$expect\" &&
-       rev_db=\$(echo \$expect | sed -e 's,_map,_db,') &&
-       convert_to_rev_db \$expect \$rev_db &&
-       rm -f \$expect &&
-       test -f \$rev_db &&
+       test -z "$(ls "$GIT_DIR"/svn/trunk/.rev_db.* 2>/dev/null)" &&
+       expect="$(ls "$GIT_DIR"/svn/trunk/.rev_map.*)" &&
+       test -n "$expect" &&
+       rev_db="$(echo $expect | sed -e "s,_map,_db,")" &&
+       convert_to_rev_db "$expect" "$rev_db" &&
+       rm -f "$expect" &&
+       test -f "$rev_db" &&
        git-svn fetch -i trunk &&
-       test -z \"\$(ls $GIT_DIR/svn/trunk/.rev_db.* 2>/dev/null)\" &&
-       test ! -e $GIT_DIR/svn/trunk/.rev_db &&
-       test -f \$expect
-       "
+       test -z "$(ls "$GIT_DIR"/svn/trunk/.rev_db.* 2>/dev/null)" &&
+       test ! -e "$GIT_DIR"/svn/trunk/.rev_db &&
+       test -f "$expect"
+       '
 
 test_done
index db4344cc84395fcecee2010320f7fc46101d75a6..f6f71d0545c869a7216eb0e81f260085f6ffdec1 100755 (executable)
@@ -10,77 +10,77 @@ start a new branch
 initial
 EOF
 
-test_expect_success 'test refspec globbing' "
+test_expect_success 'test refspec globbing' '
        mkdir -p trunk/src/a trunk/src/b trunk/doc &&
-       echo 'hello world' > trunk/src/a/readme &&
-       echo 'goodbye world' > trunk/src/b/readme &&
-       svn import -m 'initial' trunk $svnrepo/trunk &&
-       svn co $svnrepo tmp &&
+       echo "hello world" > trunk/src/a/readme &&
+       echo "goodbye world" > trunk/src/b/readme &&
+       svn import -m "initial" trunk "$svnrepo"/trunk &&
+       svn co "$svnrepo" tmp &&
        cd tmp &&
                mkdir branches tags &&
                svn add branches tags &&
                svn cp trunk branches/start &&
-               svn commit -m 'start a new branch' &&
+               svn commit -m "start a new branch" &&
                svn up &&
-               echo 'hi' >> branches/start/src/b/readme &&
+               echo "hi" >> branches/start/src/b/readme &&
                poke branches/start/src/b/readme &&
-               echo 'hey' >> branches/start/src/a/readme &&
+               echo "hey" >> branches/start/src/a/readme &&
                poke branches/start/src/a/readme &&
-               svn commit -m 'hi' &&
+               svn commit -m "hi" &&
                svn up &&
                svn cp branches/start tags/end &&
-               echo 'bye' >> tags/end/src/b/readme &&
+               echo "bye" >> tags/end/src/b/readme &&
                poke tags/end/src/b/readme &&
-               echo 'aye' >> tags/end/src/a/readme &&
+               echo "aye" >> tags/end/src/a/readme &&
                poke tags/end/src/a/readme &&
-               svn commit -m 'the end' &&
-               echo 'byebye' >> tags/end/src/b/readme &&
+               svn commit -m "the end" &&
+               echo "byebye" >> tags/end/src/b/readme &&
                poke tags/end/src/b/readme &&
-               svn commit -m 'nothing to see here'
+               svn commit -m "nothing to see here"
                cd .. &&
-       git config --add svn-remote.svn.url $svnrepo &&
+       git config --add svn-remote.svn.url "$svnrepo" &&
        git config --add svn-remote.svn.fetch \
-                        'trunk/src/a:refs/remotes/trunk' &&
+                        "trunk/src/a:refs/remotes/trunk" &&
        git config --add svn-remote.svn.branches \
-                        'branches/*/src/a:refs/remotes/branches/*' &&
+                        "branches/*/src/a:refs/remotes/branches/*" &&
        git config --add svn-remote.svn.tags\
-                        'tags/*/src/a:refs/remotes/tags/*' &&
+                        "tags/*/src/a:refs/remotes/tags/*" &&
        git-svn multi-fetch &&
        git log --pretty=oneline refs/remotes/tags/end | \
-           sed -e 's/^.\{41\}//' > output.end &&
+           sed -e "s/^.\{41\}//" > output.end &&
        cmp expect.end output.end &&
-       test \"\`git rev-parse refs/remotes/tags/end~1\`\" = \
-               \"\`git rev-parse refs/remotes/branches/start\`\" &&
-       test \"\`git rev-parse refs/remotes/branches/start~2\`\" = \
-               \"\`git rev-parse refs/remotes/trunk\`\"
-       "
+       test "`git rev-parse refs/remotes/tags/end~1`" = \
+               "`git rev-parse refs/remotes/branches/start`" &&
+       test "`git rev-parse refs/remotes/branches/start~2`" = \
+               "`git rev-parse refs/remotes/trunk`"
+       '
 
 echo try to try > expect.two
 echo nothing to see here >> expect.two
 cat expect.end >> expect.two
 
-test_expect_success 'test left-hand-side only globbing' "
-       git config --add svn-remote.two.url $svnrepo &&
+test_expect_success 'test left-hand-side only globbing' '
+       git config --add svn-remote.two.url "$svnrepo" &&
        git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&
        git config --add svn-remote.two.branches \
-                        'branches/*:refs/remotes/two/branches/*' &&
+                        "branches/*:refs/remotes/two/branches/*" &&
        git config --add svn-remote.two.tags \
-                        'tags/*:refs/remotes/two/tags/*' &&
+                        "tags/*:refs/remotes/two/tags/*" &&
        cd tmp &&
-               echo 'try try' >> tags/end/src/b/readme &&
+               echo "try try" >> tags/end/src/b/readme &&
                poke tags/end/src/b/readme &&
-               svn commit -m 'try to try'
+               svn commit -m "try to try"
                cd .. &&
        git-svn fetch two &&
-       test \`git rev-list refs/remotes/two/tags/end | wc -l\` -eq 6 &&
-       test \`git rev-list refs/remotes/two/branches/start | wc -l\` -eq 3 &&
-       test \`git rev-parse refs/remotes/two/branches/start~2\` = \
-            \`git rev-parse refs/remotes/two/trunk\` &&
-       test \`git rev-parse refs/remotes/two/tags/end~3\` = \
-            \`git rev-parse refs/remotes/two/branches/start\` &&
+       test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 &&
+       test `git rev-list refs/remotes/two/branches/start | wc -l` -eq 3 &&
+       test `git rev-parse refs/remotes/two/branches/start~2` = \
+            `git rev-parse refs/remotes/two/trunk` &&
+       test `git rev-parse refs/remotes/two/tags/end~3` = \
+            `git rev-parse refs/remotes/two/branches/start` &&
        git log --pretty=oneline refs/remotes/two/tags/end | \
-           sed -e 's/^.\{41\}//' > output.two &&
+           sed -e "s/^.\{41\}//" > output.two &&
        cmp expect.two output.two
-       "
+       '
 
 test_done
index 6235af4db8b0b744d40156f90a0afed469952441..047659fde1049777e7fe12113ecb305377b1f8f9 100755 (executable)
@@ -7,15 +7,15 @@ test_description='git-svn useSvmProps test'
 
 . ./lib-git-svn.sh
 
-test_expect_success 'load svm repo' "
-       svnadmin load -q $rawsvnrepo < ../t9110/svm.dump &&
-       git-svn init --minimize-url -R arr -i bar $svnrepo/mirror/arr &&
-       git-svn init --minimize-url -R argh -i dir $svnrepo/mirror/argh &&
+test_expect_success 'load svm repo' '
+       svnadmin load -q "$rawsvnrepo" < ../t9110/svm.dump &&
+       git-svn init --minimize-url -R arr -i bar "$svnrepo"/mirror/arr &&
+       git-svn init --minimize-url -R argh -i dir "$svnrepo"/mirror/argh &&
        git-svn init --minimize-url -R argh -i e \
-         $svnrepo/mirror/argh/a/b/c/d/e &&
+         "$svnrepo"/mirror/argh/a/b/c/d/e &&
        git config svn.useSvmProps true &&
        git-svn fetch --all
-       "
+       '
 
 uuid=161ce429-a9dd-4828-af4a-52023f968c89
 
index ec7dedd48b0e45278b33e3c5d4f97d8df5f85ddf..a8d74dcd3aba7c462d46ea33c722d4307d24bded 100755 (executable)
@@ -7,14 +7,14 @@ test_description='git-svn useSvnsyncProps test'
 
 . ./lib-git-svn.sh
 
-test_expect_success 'load svnsync repo' "
-       svnadmin load -q $rawsvnrepo < ../t9111/svnsync.dump &&
-       git-svn init --minimize-url -R arr -i bar $svnrepo/bar &&
-       git-svn init --minimize-url -R argh -i dir $svnrepo/dir &&
-       git-svn init --minimize-url -R argh -i e $svnrepo/dir/a/b/c/d/e &&
+test_expect_success 'load svnsync repo' '
+       svnadmin load -q "$rawsvnrepo" < ../t9111/svnsync.dump &&
+       git-svn init --minimize-url -R arr -i bar "$svnrepo"/bar &&
+       git-svn init --minimize-url -R argh -i dir "$svnrepo"/dir &&
+       git-svn init --minimize-url -R argh -i e "$svnrepo"/dir/a/b/c/d/e &&
        git config svn.useSvnsyncProps true &&
        git-svn fetch --all
-       "
+       '
 
 uuid=161ce429-a9dd-4828-af4a-52023f968c89
 
index 646a5f0cdb78a960faac59d202b12531542d7715..d470a920e4864ab0c494da1261fe835ff80474eb 100755 (executable)
@@ -40,8 +40,8 @@ PROPS-END
 
 EOF
 
-test_expect_success 'load svn dumpfile' "svnadmin load $rawsvnrepo < dumpfile.svn"
+test_expect_success 'load svn dumpfile' 'svnadmin load "$rawsvnrepo" < dumpfile.svn'
 
-test_expect_success 'initialize git-svn' "git-svn init $svnrepo"
+test_expect_success 'initialize git-svn' 'git-svn init "$svnrepo"'
 test_expect_success 'fetch revisions from svn' 'git-svn fetch'
 test_done
index 9ef0db9044dcd8f01baafd8c141a51a981df27d4..31c929b57368fe08f35301a75bff48e19b86a06d 100755 (executable)
@@ -15,18 +15,18 @@ test_description='git-svn dcommit new files over svn:// test'
 
 start_svnserve () {
        svnserve --listen-port $SVNSERVE_PORT \
-                --root $rawsvnrepo \
+                --root "$rawsvnrepo" \
                 --listen-once \
                 --listen-host 127.0.0.1 &
 }
 
-test_expect_success 'start tracking an empty repo' "
-       svn mkdir -m 'empty dir' $svnrepo/empty-dir &&
-       echo anon-access = write >> $rawsvnrepo/conf/svnserve.conf &&
+test_expect_success 'start tracking an empty repo' '
+       svn mkdir -m "empty dir" "$svnrepo"/empty-dir &&
+       echo anon-access = write >> "$rawsvnrepo"/conf/svnserve.conf &&
        start_svnserve &&
        git svn init svn://127.0.0.1:$SVNSERVE_PORT &&
        git svn fetch
-       "
+       '
 
 test_expect_success 'create files in new directory with dcommit' "
        mkdir git-new-dir &&
index 225060b88bc7533c02d9acffbe9d4b01f848050e..61d7781616eed4374c014cabd75a297c2baa348d 100755 (executable)
@@ -34,35 +34,35 @@ cat << EOF
 EOF
 }
 
-test_expect_success 'setup svn repository' "
-       svn co $svnrepo mysvnwork &&
+test_expect_success 'setup svn repository' '
+       svn co "$svnrepo" mysvnwork &&
        mkdir -p mysvnwork/trunk &&
        cd mysvnwork &&
                big_text_block >> trunk/README &&
                svn add trunk &&
-               svn ci -m 'first commit' trunk &&
+               svn ci -m "first commit" trunk &&
                cd ..
-       "
+       '
 
-test_expect_success 'setup git mirror and merge' "
-       git svn init $svnrepo -t tags -T trunk -b branches &&
+test_expect_success 'setup git mirror and merge' '
+       git svn init "$svnrepo" -t tags -T trunk -b branches &&
        git svn fetch &&
        git checkout --track -b svn remotes/trunk &&
        git checkout -b merge &&
        echo new file > new_file &&
        git add new_file &&
-       git commit -a -m 'New file' &&
+       git commit -a -m "New file" &&
        echo hello >> README &&
-       git commit -a -m 'hello' &&
+       git commit -a -m "hello" &&
        echo add some stuff >> new_file &&
-       git commit -a -m 'add some stuff' &&
+       git commit -a -m "add some stuff" &&
        git checkout svn &&
        mv -f README tmp &&
        echo friend > README &&
        cat tmp >> README &&
-       git commit -a -m 'friend' &&
+       git commit -a -m "friend" &&
        git pull . merge
-       "
+       '
 
 test_debug 'gitk --all & sleep 1'
 
index 4acbcb0acdce7852ee1f416250b5939132a93ca1..f0fbd3aff7e63f64f8ba388db805013c43b4b22c 100755 (executable)
@@ -7,16 +7,16 @@ test_description='git-svn dcommit can commit renames of files with ugly names'
 
 . ./lib-git-svn.sh
 
-test_expect_success 'load repository with strange names' "
-       svnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&
+test_expect_success 'load repository with strange names' '
+       svnadmin load -q "$rawsvnrepo" < ../t9115/funky-names.dump &&
        start_httpd gtk+
-       "
+       '
 
-test_expect_success 'init and fetch repository' "
-       git svn init $svnrepo &&
+test_expect_success 'init and fetch repository' '
+       git svn init "$svnrepo" &&
        git svn fetch &&
        git reset --hard git-svn
-       "
+       '
 
 test_expect_success 'create file in existing ugly and empty dir' '
        mkdir "#{bad_directory_name}" &&
@@ -59,28 +59,28 @@ test_expect_success 'add a file with plus signs' '
        git svn dcommit
        '
 
-test_expect_success 'clone the repository to test rebase' "
-       git svn clone $svnrepo test-rebase &&
+test_expect_success 'clone the repository to test rebase' '
+       git svn clone "$svnrepo" test-rebase &&
        cd test-rebase &&
                echo test-rebase > test-rebase &&
                git add test-rebase &&
                git commit -m test-rebase &&
                cd ..
-       "
+       '
 
-test_expect_success 'make a commit to test rebase' "
+test_expect_success 'make a commit to test rebase' '
                echo test-rebase-main > test-rebase-main &&
                git add test-rebase-main &&
                git commit -m test-rebase-main &&
                git svn dcommit
-       "
+       '
 
-test_expect_success 'git-svn rebase works inside a fresh-cloned repository' "
+test_expect_success 'git-svn rebase works inside a fresh-cloned repository' '
        cd test-rebase &&
                git svn rebase &&
                test -e test-rebase-main &&
                test -e test-rebase
-       "
+       '
 
 stop_httpd
 
index e1e8bdf0e37928c20e6bf24c08aaf574268cb037..4b2cc878f685e65b2ccd5d8153efb533320d6ee9 100755 (executable)
@@ -6,17 +6,17 @@
 test_description='git-svn log tests'
 . ./lib-git-svn.sh
 
-test_expect_success 'setup repository and import' "
+test_expect_success 'setup repository and import' '
        mkdir import &&
        cd import &&
                for i in trunk branches/a branches/b \
                         tags/0.1 tags/0.2 tags/0.3; do
-                       mkdir -p \$i && \
-                       echo hello >> \$i/README || exit 1
+                       mkdir -p $i && \
+                       echo hello >> $i/README || exit 1
                done && \
-               svn import -m test . $svnrepo
+               svn import -m test . "$svnrepo"
                cd .. &&
-       git-svn init $svnrepo -T trunk -b branches -t tags &&
+       git-svn init "$svnrepo" -T trunk -b branches -t tags &&
        git-svn fetch &&
        git reset --hard trunk &&
        echo bye >> README &&
@@ -37,7 +37,7 @@ test_expect_success 'setup repository and import' "
        echo try >> README &&
        git commit -a -m try &&
        git svn dcommit
-       "
+       '
 
 test_expect_success 'run log' "
        git reset --hard a &&
index d482b407f2ae17591a1a345f9f1ffd73cc9c5a97..7a689bb1cd1d9daa1f17c0dcaaafa4d68ebd78fa 100755 (executable)
@@ -13,43 +13,43 @@ rm -r .git
 mkdir tmp
 cd tmp
 
-test_expect_success 'setup svnrepo' "
+test_expect_success 'setup svnrepo' '
        mkdir project project/trunk project/branches project/tags &&
        echo foo > project/trunk/foo &&
-       svn import -m '$test_description' project $svnrepo/project &&
+       svn import -m "$test_description" project "$svnrepo"/project &&
        rm -rf project
-       "
+       '
 
-test_expect_success 'basic clone' "
+test_expect_success 'basic clone' '
        test ! -d trunk &&
-       git svn clone $svnrepo/project/trunk &&
+       git svn clone "$svnrepo"/project/trunk &&
        test -d trunk/.git/svn &&
        test -e trunk/foo &&
        rm -rf trunk
-       "
+       '
 
-test_expect_success 'clone to target directory' "
+test_expect_success 'clone to target directory' '
        test ! -d target &&
-       git svn clone $svnrepo/project/trunk target &&
+       git svn clone "$svnrepo"/project/trunk target &&
        test -d target/.git/svn &&
        test -e target/foo &&
        rm -rf target
-       "
+       '
 
-test_expect_success 'clone with --stdlayout' "
+test_expect_success 'clone with --stdlayout' '
        test ! -d project &&
-       git svn clone -s $svnrepo/project &&
+       git svn clone -s "$svnrepo"/project &&
        test -d project/.git/svn &&
        test -e project/foo &&
        rm -rf project
-       "
+       '
 
-test_expect_success 'clone to target directory with --stdlayout' "
+test_expect_success 'clone to target directory with --stdlayout' '
        test ! -d target &&
-       git svn clone -s $svnrepo/project target &&
+       git svn clone -s "$svnrepo"/project target &&
        test -d target/.git/svn &&
        test -e target/foo &&
        rm -rf target
-       "
+       '
 
 test_done
index 640bb066f380d6306ebb76e3dedf38c60cfab0b5..3281cbd3472a8da58c4f6f0f3965b5810705b0e9 100755 (executable)
@@ -6,25 +6,25 @@
 test_description='git-svn funky branch names'
 . ./lib-git-svn.sh
 
-test_expect_success 'setup svnrepo' "
+test_expect_success 'setup svnrepo' '
        mkdir project project/trunk project/branches project/tags &&
        echo foo > project/trunk/foo &&
-       svn import -m '$test_description' project \"$svnrepo/pr ject\" &&
+       svn import -m "$test_description" project "$svnrepo/pr ject" &&
        rm -rf project &&
-       svn cp -m 'fun' \"$svnrepo/pr ject/trunk\" \
-                       \"$svnrepo/pr ject/branches/fun plugin\" &&
-       svn cp -m 'more fun!' \"$svnrepo/pr ject/branches/fun plugin\" \
-                             \"$svnrepo/pr ject/branches/more fun plugin!\" &&
+       svn cp -m "fun" "$svnrepo/pr ject/trunk" \
+                       "$svnrepo/pr ject/branches/fun plugin" &&
+       svn cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \
+                             "$svnrepo/pr ject/branches/more fun plugin!" &&
        start_httpd
-       "
+       '
 
-test_expect_success 'test clone with funky branch names' "
-       git svn clone -s \"$svnrepo/pr ject\" project &&
+test_expect_success 'test clone with funky branch names' '
+       git svn clone -s "$svnrepo/pr ject" project &&
        cd project &&
-               git rev-parse 'refs/remotes/fun%20plugin' &&
-               git rev-parse 'refs/remotes/more%20fun%20plugin!' &&
+               git rev-parse "refs/remotes/fun%20plugin" &&
+               git rev-parse "refs/remotes/more%20fun%20plugin!" &&
        cd ..
-       "
+       '
 
 test_expect_success 'test dcommit to funky branch' "
        cd project &&
index 9a4eabe523c8560da9559b5c0ca6a951a027ca5d..5979e133b9d5b9d85ddca31a40763ed4fb6feba3 100755 (executable)
@@ -6,13 +6,13 @@
 test_description='git-svn clone with percent escapes'
 . ./lib-git-svn.sh
 
-test_expect_success 'setup svnrepo' "
+test_expect_success 'setup svnrepo' '
        mkdir project project/trunk project/branches project/tags &&
        echo foo > project/trunk/foo &&
-       svn import -m '$test_description' project '$svnrepo/pr ject' &&
+       svn import -m "$test_description" project "$svnrepo/pr ject" &&
        rm -rf project &&
        start_httpd
-"
+'
 
 if test "$SVN_HTTPD_PORT" = ""
 then
index 5143ed606612a0a66e382f799e64f3ff48f16b9e..99230b08107102836f752c14e1b0a67804b35ea3 100755 (executable)
@@ -7,14 +7,14 @@ test_description='git-svn can fetch renamed directories'
 
 . ./lib-git-svn.sh
 
-test_expect_success 'load repository with renamed directory' "
-       svnadmin load -q $rawsvnrepo < ../t9121/renamed-dir.dump
-       "
+test_expect_success 'load repository with renamed directory' '
+       svnadmin load -q "$rawsvnrepo" < ../t9121/renamed-dir.dump
+       '
 
-test_expect_success 'init and fetch repository' "
-       git svn init $svnrepo/newname &&
+test_expect_success 'init and fetch repository' '
+       git svn init "$svnrepo/newname" &&
        git svn fetch
-       "
+       '
 
 test_done
 
index 166b43f783517debf1de716aed4c1952ab1fea4b..e97aaa6c2a2fdcc476e538ffe903cef65274c280 100755 (executable)
@@ -153,21 +153,21 @@ test_expect_success 'req_Root failure (conflicting roots)' \
    tail log | grep "^error 1 Conflicting roots specified$"'
 
 test_expect_success 'req_Root (strict paths)' \
-  'cat request-anonymous | git-cvsserver --strict-paths pserver $SERVERDIR >log 2>&1 &&
+  'cat request-anonymous | git-cvsserver --strict-paths pserver "$SERVERDIR" >log 2>&1 &&
    sed -ne \$p log | grep "^I LOVE YOU$"'
 
 test_expect_success 'req_Root failure (strict-paths)' '
     ! cat request-anonymous |
-    git-cvsserver --strict-paths pserver $WORKDIR >log 2>&1
+    git-cvsserver --strict-paths pserver "$WORKDIR" >log 2>&1
 '
 
 test_expect_success 'req_Root (w/o strict-paths)' \
-  'cat request-anonymous | git-cvsserver pserver $WORKDIR/ >log 2>&1 &&
+  'cat request-anonymous | git-cvsserver pserver "$WORKDIR/" >log 2>&1 &&
    sed -ne \$p log | grep "^I LOVE YOU$"'
 
 test_expect_success 'req_Root failure (w/o strict-paths)' '
     ! cat request-anonymous |
-    git-cvsserver pserver $WORKDIR/gitcvs >log 2>&1
+    git-cvsserver pserver "$WORKDIR/gitcvs" >log 2>&1
 '
 
 cat >request-base  <<EOF
@@ -180,25 +180,25 @@ Root /gitcvs.git
 EOF
 
 test_expect_success 'req_Root (base-path)' \
-  'cat request-base | git-cvsserver --strict-paths --base-path $WORKDIR/ pserver $SERVERDIR >log 2>&1 &&
+  'cat request-base | git-cvsserver --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
    sed -ne \$p log | grep "^I LOVE YOU$"'
 
 test_expect_success 'req_Root failure (base-path)' '
     ! cat request-anonymous |
-    git-cvsserver --strict-paths --base-path $WORKDIR pserver $SERVERDIR >log 2>&1
+    git-cvsserver --strict-paths --base-path "$WORKDIR" pserver "$SERVERDIR" >log 2>&1
 '
 
 GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false || exit 1
 
 test_expect_success 'req_Root (export-all)' \
-  'cat request-anonymous | git-cvsserver --export-all pserver $WORKDIR >log 2>&1 &&
+  'cat request-anonymous | git-cvsserver --export-all pserver "$WORKDIR" >log 2>&1 &&
    sed -ne \$p log | grep "^I LOVE YOU$"'
 
 test_expect_success 'req_Root failure (export-all w/o whitelist)' \
   '! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)'
 
 test_expect_success 'req_Root (everything together)' \
-  'cat request-base | git-cvsserver --export-all --strict-paths --base-path $WORKDIR/ pserver $SERVERDIR >log 2>&1 &&
+  'cat request-base | git-cvsserver --export-all --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
    sed -ne \$p log | grep "^I LOVE YOU$"'
 
 GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1
index 061a2596d3b63e7d737d735c4a6cb097bfcf387f..ae7082be1d903e1f4d5758610d5166152f2847cc 100755 (executable)
@@ -10,6 +10,7 @@ commandline, and checks that it would not write any errors
 or warnings to log.'
 
 gitweb_init () {
+       safe_pwd="$(perl -MPOSIX=getcwd -e 'print quotemeta(getcwd)')"
        cat >gitweb_config.perl <<EOF
 #!/usr/bin/perl
 
@@ -17,16 +18,16 @@ gitweb_init () {
 
 our \$version = "current";
 our \$GIT = "git";
-our \$projectroot = "$(pwd)";
+our \$projectroot = "$safe_pwd";
 our \$project_maxdepth = 8;
 our \$home_link_str = "projects";
 our \$site_name = "[localhost]";
 our \$site_header = "";
 our \$site_footer = "";
 our \$home_text = "indextext.html";
-our @stylesheets = ("file:///$(pwd)/../../gitweb/gitweb.css");
-our \$logo = "file:///$(pwd)/../../gitweb/git-logo.png";
-our \$favicon = "file:///$(pwd)/../../gitweb/git-favicon.png";
+our @stylesheets = ("file:///$safe_pwd/../../gitweb/gitweb.css");
+our \$logo = "file:///$safe_pwd/../../gitweb/git-logo.png";
+our \$favicon = "file:///$safe_pwd/../../gitweb/git-favicon.png";
 our \$projects_list = "";
 our \$export_ok = "";
 our \$strict_export = "";
@@ -39,19 +40,21 @@ EOF
 }
 
 gitweb_run () {
-       export GATEWAY_INTERFACE="CGI/1.1"
-       export HTTP_ACCEPT="*/*"
-       export REQUEST_METHOD="GET"
-       export QUERY_STRING=""$1""
-       export PATH_INFO=""$2""
+       GATEWAY_INTERFACE="CGI/1.1"
+       HTTP_ACCEPT="*/*"
+       REQUEST_METHOD="GET"
+       QUERY_STRING=""$1""
+       PATH_INFO=""$2""
+       export GATEWAY_INTERFACE HTTP_ACCEPT REQUEST_METHOD QUERY_STRING PATH_INFO
 
-       export GITWEB_CONFIG=$(pwd)/gitweb_config.perl
+       GITWEB_CONFIG=$(pwd)/gitweb_config.perl
+       export GITWEB_CONFIG
 
        # some of git commands write to STDERR on error, but this is not
        # written to web server logs, so we are not interested in that:
        # we are interested only in properly formatted errors/warnings
        rm -f gitweb.log &&
-       perl -- $(pwd)/../../gitweb/gitweb.perl \
+       perl -- "$(pwd)/../../gitweb/gitweb.perl" \
                >/dev/null 2>gitweb.log &&
        if grep -q -s "^[[]" gitweb.log >/dev/null; then false; else true; fi
 
index 00a74ee7384e4b824c9faf9e6d7891e4f28c775a..0b115a17ab46e02ca7ec67f08feada0c48c8628a 100755 (executable)
@@ -36,7 +36,7 @@ test_expect_success 'setup cvsroot' 'cvs init'
 
 test_expect_success 'setup a cvs module' '
 
-       mkdir $CVSROOT/module &&
+       mkdir "$CVSROOT/module" &&
        cvs co -d module-cvs module &&
        cd module-cvs &&
        cat <<EOF >o_fortuna &&
index 7c2a8ba77d312c3196767969a39687bfb12f74c9..5002fb04b58ea91572b58dcaf7fe92342f4eeab1 100644 (file)
@@ -160,6 +160,22 @@ die () {
 
 trap 'die' exit
 
+# The semantics of the editor variables are that of invoking
+# sh -c "$EDITOR \"$@\"" files ...
+#
+# If our trash directory contains shell metacharacters, they will be
+# interpreted if we just set $EDITOR directly, so do a little dance with
+# environment variables to work around this.
+#
+# In particular, quoting isn't enough, as the path may contain the same quote
+# that we're using. 
+test_set_editor () {
+       FAKE_EDITOR="$1"
+       export FAKE_EDITOR
+       VISUAL='"$FAKE_EDITOR"'
+       export VISUAL
+}
+
 test_tick () {
        if test -z "${test_tick+set}"
        then
@@ -329,7 +345,7 @@ test_create_repo () {
        repo="$1"
        mkdir "$repo"
        cd "$repo" || error "Cannot setup test environment"
-       "$GIT_EXEC_PATH/git" init --template=$GIT_EXEC_PATH/templates/blt/ >/dev/null 2>&1 ||
+       "$GIT_EXEC_PATH/git" init "--template=$GIT_EXEC_PATH/templates/blt/" >/dev/null 2>&1 ||
        error "cannot run git init -- have you built things yet?"
        mv .git/hooks .git/hooks-disabled
        cd "$owd"
@@ -395,14 +411,14 @@ fi
 . ../GIT-BUILD-OPTIONS
 
 # Test repository
-test=trash
+test="trash directory"
 rm -fr "$test" || {
        trap - exit
        echo >&5 "FATAL: Cannot prepare test area"
        exit 1
 }
 
-test_create_repo $test
+test_create_repo "$test"
 cd "$test"
 
 this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$')