(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn globbing refspecs">)} spids: [6] ) ] spids: [6] ) (C {(.)} {(./lib-git-svn.sh)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(expect.end)} spids:[18]) (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ("the end\n") ("hi\n") ("start a new branch\n") ("initial\n"))} do_expansion: True here_end: EOF was_filled: True spids: [22] ) ] ) (C {(test_expect_success)} {(SQ <"test refspec globbing">)} { (SQ <"\n"> <"\tmkdir -p trunk/src/a trunk/src/b trunk/doc &&\n"> <"\techo \"hello world\" > trunk/src/a/readme &&\n"> <"\techo \"goodbye world\" > trunk/src/b/readme &&\n"> <"\tsvn_cmd import -m \"initial\" trunk \"$svnrepo\"/trunk &&\n"> <"\tsvn_cmd co \"$svnrepo\" tmp &&\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\tmkdir branches branches/v1 tags &&\n"> <"\t\tsvn_cmd add branches tags &&\n"> <"\t\tsvn_cmd cp trunk branches/v1/start &&\n"> <"\t\tsvn_cmd commit -m \"start a new branch\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\techo \"hi\" >> branches/v1/start/src/b/readme &&\n"> <"\t\tpoke branches/v1/start/src/b/readme &&\n"> <"\t\techo \"hey\" >> branches/v1/start/src/a/readme &&\n"> <"\t\tpoke branches/v1/start/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"hi\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd cp branches/v1/start tags/end &&\n"> <"\t\techo \"bye\" >> tags/end/src/b/readme &&\n"> <"\t\tpoke tags/end/src/b/readme &&\n"> <"\t\techo \"aye\" >> tags/end/src/a/readme &&\n"> <"\t\tpoke tags/end/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"the end\" &&\n"> <"\t\techo \"byebye\" >> tags/end/src/b/readme &&\n"> <"\t\tpoke tags/end/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"nothing to see here\"\n"> <"\t) &&\n"> <"\tgit config --add svn-remote.svn.url \"$svnrepo\" &&\n"> <"\tgit config --add svn-remote.svn.fetch \\\n"> <"\t \"trunk/src/a:refs/remotes/trunk\" &&\n"> <"\tgit config --add svn-remote.svn.branches \\\n"> <"\t \"branches/*/*/src/a:refs/remotes/branches/*/*\" &&\n"> <"\tgit config --add svn-remote.svn.tags\\\n"> <"\t \"tags/*/src/a:refs/remotes/tags/*\" &&\n"> <"\tgit svn multi-fetch &&\n"> <"\tgit log --pretty=oneline refs/remotes/tags/end | \\\n"> <"\t sed -e \"s/^.\\{41\\}//\" > output.end &&\n"> <"\ttest_cmp expect.end output.end &&\n"> <"\ttest \"$(git rev-parse refs/remotes/tags/end~1)\" = \\\n"> <"\t\t\"$(git rev-parse refs/remotes/branches/v1/start)\" &&\n"> <"\ttest \"$(git rev-parse refs/remotes/branches/v1/start~2)\" = \\\n"> <"\t\t\"$(git rev-parse refs/remotes/trunk)\" &&\n"> <"\ttest_must_fail git rev-parse refs/remotes/tags/end@3\n"> <"\t"> ) } ) (SimpleCommand words: [{(echo)} {(try)} {(to)} {(try)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(expect.two)} spids:[94])] ) (SimpleCommand words: [{(echo)} {(nothing)} {(to)} {(see)} {(here)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(expect.two)} spids:[108])] ) (SimpleCommand words: [{(cat)} {(expect.end)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(expect.two)} spids:[116])] ) (C {(test_expect_success)} {(SQ <"test left-hand-side only globbing">)} { (SQ <"\n"> <"\tgit config --add svn-remote.two.url \"$svnrepo\" &&\n"> <"\tgit config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&\n"> <"\tgit config --add svn-remote.two.branches \\\n"> <"\t \"branches/*/*:refs/remotes/two/branches/*/*\" &&\n"> <"\tgit config --add svn-remote.two.tags \\\n"> <"\t \"tags/*:refs/remotes/two/tags/*\" &&\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\techo \"try try\" >> tags/end/src/b/readme &&\n"> <"\t\tpoke tags/end/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"try to try\"\n"> <"\t) &&\n"> <"\tgit svn fetch two &&\n"> <"\ttest $(git rev-list refs/remotes/two/tags/end | wc -l) -eq 6 &&\n"> <"\ttest $(git rev-list refs/remotes/two/branches/v1/start | wc -l) -eq 3 &&\n"> <"\ttest $(git rev-parse refs/remotes/two/branches/v1/start~2) = \\\n"> <"\t $(git rev-parse refs/remotes/two/trunk) &&\n"> <"\ttest $(git rev-parse refs/remotes/two/tags/end~3) = \\\n"> <"\t $(git rev-parse refs/remotes/two/branches/v1/start) &&\n"> <"\tgit log --pretty=oneline refs/remotes/two/tags/end | \\\n"> <"\t sed -e \"s/^.\\{41\\}//\" > output.two &&\n"> <"\ttest_cmp expect.two output.two\n"> <"\t"> ) } ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(expect.four)} spids:[156]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("adios\n") ("adding more\n") ("Changed 2 in v2/start\n") ("Another versioned branch\n") ("initial\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [160] ) ] ) (C {(test_expect_success)} {(SQ <"test another branch">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\tmkdir branches/v2 &&\n"> <"\t\tsvn_cmd add branches/v2 &&\n"> <"\t\tsvn_cmd cp trunk branches/v2/start &&\n"> <"\t\tsvn_cmd commit -m \"Another versioned branch\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\techo \"hello\" >> branches/v2/start/src/b/readme &&\n"> <"\t\tpoke branches/v2/start/src/b/readme &&\n"> <"\t\techo \"howdy\" >> branches/v2/start/src/a/readme &&\n"> <"\t\tpoke branches/v2/start/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"Changed 2 in v2/start\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd cp branches/v2/start tags/next &&\n"> <"\t\techo \"bye\" >> tags/next/src/b/readme &&\n"> <"\t\tpoke tags/next/src/b/readme &&\n"> <"\t\techo \"aye\" >> tags/next/src/a/readme &&\n"> <"\t\tpoke tags/next/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"adding more\" &&\n"> <"\t\techo \"byebye\" >> tags/next/src/b/readme &&\n"> <"\t\tpoke tags/next/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"adios\"\n"> <"\t) &&\n"> <"\tgit config --add svn-remote.four.url \"$svnrepo\" &&\n"> <"\tgit config --add svn-remote.four.fetch trunk:refs/remotes/four/trunk &&\n"> <"\tgit config --add svn-remote.four.branches \\\n"> <"\t \"branches/*/*:refs/remotes/four/branches/*/*\" &&\n"> <"\tgit config --add svn-remote.four.tags \\\n"> <"\t \"tags/*:refs/remotes/four/tags/*\" &&\n"> <"\tgit svn fetch four &&\n"> <"\ttest $(git rev-list refs/remotes/four/tags/next | wc -l) -eq 5 &&\n"> <"\ttest $(git rev-list refs/remotes/four/branches/v2/start | wc -l) -eq 3 &&\n"> <"\ttest $(git rev-parse refs/remotes/four/branches/v2/start~2) = \\\n"> <"\t $(git rev-parse refs/remotes/four/trunk) &&\n"> <"\ttest $(git rev-parse refs/remotes/four/tags/next~2) = \\\n"> <"\t $(git rev-parse refs/remotes/four/branches/v2/start) &&\n"> <"\tgit log --pretty=oneline refs/remotes/four/tags/next | \\\n"> <"\t sed -e \"s/^.\\{41\\}//\" > output.four &&\n"> <"\ttest_cmp expect.four output.four\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"prepare test disallow multiple globs">)} { (DQ ("\n") ("cat >expect.three <<EOF\n") ("Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/*\n") ("\n") ("EOF\n") ("\t") ) } ) (C {(test_expect_success)} {(SQ <"test disallow multiple globs">)} { (SQ <"\n"> <"\tgit config --add svn-remote.three.url \"$svnrepo\" &&\n"> <"\tgit config --add svn-remote.three.fetch \\\n"> <"\t trunk:refs/remotes/three/trunk &&\n"> <"\tgit config --add svn-remote.three.branches \\\n"> <"\t \"branches/*/t/*:refs/remotes/three/branches/*/*\" &&\n"> <"\tgit config --add svn-remote.three.tags \\\n"> <"\t \"tags/*:refs/remotes/three/tags/*\" &&\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\techo \"try try\" >> tags/end/src/b/readme &&\n"> <"\t\tpoke tags/end/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"try to try\"\n"> <"\t) &&\n"> <"\ttest_must_fail git svn fetch three 2> stderr.three &&\n"> <"\ttest_cmp expect.three stderr.three\n"> <"\t"> ) } ) (C {(test_done)}) ] )