(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'git svn globbing refspecs'>)} ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect.end)}) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 30 stdin_parts: [('the end\n') ('hi\n') ('start a new branch\n') ('initial\n')] ) ] ) (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 tags &&\n'> <'\t\tsvn_cmd add branches tags &&\n'> <'\t\tsvn_cmd cp trunk branches/start &&\n'> <'\t\tsvn_cmd commit -m "start a new branch" &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\techo "hi" >> branches/start/src/b/readme &&\n'> <'\t\tpoke branches/start/src/b/readme &&\n'> <'\t\techo "hey" >> branches/start/src/a/readme &&\n'> <'\t\tpoke branches/start/src/a/readme &&\n'> <'\t\tsvn_cmd commit -m "hi" &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\tsvn_cmd cp branches/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/start)" &&\n'> <'\ttest "$(git rev-parse refs/remotes/branches/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'> ) } ) (command.SimpleCommand words: [{(echo)} {(try)} {(to)} {(try)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect.two)})] ) (command.SimpleCommand words: [{(echo)} {(nothing)} {(to)} {(see)} {(here)}] redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(expect.two)})] ) (command.SimpleCommand words: [{(cat)} {(expect.end)}] redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(expect.two)})] ) (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/start | wc -l) -eq 3 &&\n'> <'\ttest $(git rev-parse refs/remotes/two/branches/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/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'> ) } ) (C {(test_expect_success)} {(SQ <'prepare test disallow multi-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 multi-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)}) ] )