Fix multi-glob assertion in git-svn

Fixes bad regex match check for multiple globs (would always return
one glob regardless of actual number).

[ew: fixed a bashism in the test and some minor line-wrapping]

Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh
index f6f71d0..69e9687 100755
--- a/t/t9108-git-svn-glob.sh
+++ b/t/t9108-git-svn-glob.sh
@@ -16,7 +16,8 @@
 	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 @@
 		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 @@
 	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 @@
 	                 "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 @@
 	     `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