]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t9108-git-svn-glob.sh
Fix multi-glob assertion in git-svn
[thirdparty/git.git] / t / t9108-git-svn-glob.sh
index f6f71d0545c869a7216eb0e81f260085f6ffdec1..69e96878fe0bb2d29567e1b9d5f15dd6b855085c 100755 (executable)
@@ -16,7 +16,8 @@ test_expect_success 'test refspec globbing' '
        echo "goodbye world" > trunk/src/b/readme &&
        svn import -m "initial" trunk "$svnrepo"/trunk &&
        svn co "$svnrepo" tmp &&
-       cd tmp &&
+       (
+               cd tmp &&
                mkdir branches tags &&
                svn add branches tags &&
                svn cp trunk branches/start &&
@@ -37,7 +38,7 @@ test_expect_success 'test refspec globbing' '
                echo "byebye" >> tags/end/src/b/readme &&
                poke tags/end/src/b/readme &&
                svn commit -m "nothing to see here"
-               cd .. &&
+       ) &&
        git config --add svn-remote.svn.url "$svnrepo" &&
        git config --add svn-remote.svn.fetch \
                         "trunk/src/a:refs/remotes/trunk" &&
@@ -48,7 +49,7 @@ test_expect_success 'test refspec globbing' '
        git-svn multi-fetch &&
        git log --pretty=oneline refs/remotes/tags/end | \
            sed -e "s/^.\{41\}//" > output.end &&
-       cmp expect.end output.end &&
+       test_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`" = \
@@ -66,11 +67,12 @@ test_expect_success 'test left-hand-side only globbing' '
                         "branches/*:refs/remotes/two/branches/*" &&
        git config --add svn-remote.two.tags \
                         "tags/*:refs/remotes/two/tags/*" &&
-       cd tmp &&
+       (
+               cd tmp &&
                echo "try try" >> tags/end/src/b/readme &&
                poke tags/end/src/b/readme &&
                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 &&
@@ -80,7 +82,29 @@ test_expect_success 'test left-hand-side only globbing' '
             `git rev-parse refs/remotes/two/branches/start` &&
        git log --pretty=oneline refs/remotes/two/tags/end | \
            sed -e "s/^.\{41\}//" > output.two &&
-       cmp expect.two output.two
+       test_cmp expect.two output.two
+       '
+
+echo "Only one '*' wildcard expansion is supported (got 2): 'branches/*/*'" \
+     > expect.three
+echo "" >> expect.three
+
+test_expect_success 'test disallow multi-globs' '
+       git config --add svn-remote.three.url "$svnrepo" &&
+       git config --add svn-remote.three.fetch \
+                        trunk:refs/remotes/three/trunk &&
+       git config --add svn-remote.three.branches \
+                        "branches/*/*:refs/remotes/three/branches/*" &&
+       git config --add svn-remote.three.tags \
+                        "tags/*/*:refs/remotes/three/tags/*" &&
+       (
+               cd tmp &&
+               echo "try try" >> tags/end/src/b/readme &&
+               poke tags/end/src/b/readme &&
+               svn commit -m "try to try"
+       ) &&
+       test_must_fail git-svn fetch three 2> stderr.three &&
+       test_cmp expect.three stderr.three
        '
 
 test_done