(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git svn authors file tests' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:26) fd: -1 arg_word: {(svn-authors)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:30) fd: -1 here_begin: {(EOF)} here_end_span_id: 36 stdin_parts: [ ('aa = AAAAAAA AAAAAAA <aa@example.com>\n') ('bb = BBBBBBB BBBBBBB <bb@example.com>\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup svnrepo' span_id:41))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:45) (Token id:Id.Lit_Chars val:'\tfor i in aa bb cc dd\n' span_id:46) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:47) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd mkdir -m $i --username $i "$svnrepo"/$i\n' span_id: 48 ) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:49) (Token id:Id.Lit_Chars val:'\t' span_id:50) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'start import with incomplete authors file' span_id:57))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:61) (Token id: Id.Lit_Chars val: '\ttest_must_fail git svn clone --authors-file=svn-authors "$svnrepo" x\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\t' span_id:63) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'imported 2 revisions successfully' span_id:70))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id:Id.Lit_Chars val:'\t(\n' span_id:75) (Token id:Id.Lit_Chars val:'\t\tcd x\n' span_id:76) (Token id: Id.Lit_Chars val: '\t\ttest "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 2 &&\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list -1 --pretty=raw refs/remotes/git-svn | \\\n' span_id:78) (Token id: Id.Lit_Chars val: '\t\t grep "^author BBBBBBB BBBBBBB <bb@example\\.com> " &&\n' span_id: 79 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \\\n' span_id: 80 ) (Token id:Id.Lit_Chars val:'\t\t grep "^author AAAAAAA AAAAAAA <aa@example\\.com> "\n' span_id:81) (Token id:Id.Lit_Chars val:'\t)\n' span_id:82) (Token id:Id.Lit_Chars val:'\t' span_id:83) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:89) fd: -1 arg_word: {(svn-authors)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:93) fd: -1 here_begin: {(EOF)} here_end_span_id: 99 stdin_parts: [ ('cc = CCCCCCC CCCCCCC <cc@example.com>\n') ('dd = DDDDDDD DDDDDDD <dd@example.com>\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'continues to import once authors have been added' span_id: 104 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:108) (Token id:Id.Lit_Chars val:'\t(\n' span_id:109) (Token id:Id.Lit_Chars val:'\t\tcd x\n' span_id:110) (Token id: Id.Lit_Chars val: '\t\tgit svn fetch --authors-file=../svn-authors &&\n' span_id: 111 ) (Token id: Id.Lit_Chars val: '\t\ttest "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 4 &&\n' span_id: 112 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list -1 --pretty=raw refs/remotes/git-svn | \\\n' span_id: 113 ) (Token id: Id.Lit_Chars val: '\t\t grep "^author DDDDDDD DDDDDDD <dd@example\\.com> " &&\n' span_id: 114 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \\\n' span_id: 115 ) (Token id:Id.Lit_Chars val:'\t\t grep "^author CCCCCCC CCCCCCC <cc@example\\.com> "\n' span_id:116) (Token id:Id.Lit_Chars val:'\t)\n' span_id:117) (Token id:Id.Lit_Chars val:'\t' span_id:118) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'authors-file against globs' span_id:125))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:129) (Token id: Id.Lit_Chars val: '\tsvn_cmd mkdir -m globs --username aa \\\n' span_id: 130 ) (Token id: Id.Lit_Chars val: '\t "$svnrepo"/aa/trunk "$svnrepo"/aa/branches "$svnrepo"/aa/tags &&\n' span_id: 131 ) (Token id: Id.Lit_Chars val: '\tgit svn clone --authors-file=svn-authors -s "$svnrepo"/aa aa-work &&\n' span_id: 132 ) (Token id:Id.Lit_Chars val:'\tfor i in bb ee cc\n' span_id:133) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\tbranch="aa/branches/$i"\n' span_id:135) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd mkdir -m "$branch" --username $i "$svnrepo/$branch"\n' span_id: 136 ) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:137) (Token id:Id.Lit_Chars val:'\t' span_id:138) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetch fails on ee' span_id:145))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:149) (Token id: Id.Lit_Chars val: '\t( cd aa-work && test_must_fail git svn fetch --authors-file=../svn-authors )\n' span_id: 150 ) (Token id:Id.Lit_Chars val:'\t' span_id:151) ) } ) (command.ShFunction name: tmp_config_get body: (command.BraceGroup children: [ (C {(git)} {(config)} {(--file) (Id.Lit_Equals '=') (.git/svn/.metadata)} {(--get)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'failure happened without negative side effects' span_id:183))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:187) (Token id:Id.Lit_Chars val:'\t(\n' span_id:188) (Token id:Id.Lit_Chars val:'\t\tcd aa-work &&\n' span_id:189) (Token id: Id.Lit_Chars val: '\t\ttest 6 -eq "$(tmp_config_get svn-remote.svn.branches-maxRev)" &&\n' span_id: 190 ) (Token id: Id.Lit_Chars val: '\t\ttest 6 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)"\n' span_id: 191 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:192) (Token id:Id.Lit_Chars val:'\t' span_id:193) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:199) fd: -1 arg_word: {(svn-authors)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:203) fd: -1 here_begin: {(EOF)} here_end_span_id: 208 stdin_parts: [('ee = EEEEEEE EEEEEEE <ee@example.com>\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetch continues after authors-file is fixed' span_id:213))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:217) (Token id:Id.Lit_Chars val:'\t(\n' span_id:218) (Token id:Id.Lit_Chars val:'\t\tcd aa-work &&\n' span_id:219) (Token id: Id.Lit_Chars val: '\t\tgit svn fetch --authors-file=../svn-authors &&\n' span_id: 220 ) (Token id: Id.Lit_Chars val: '\t\ttest 8 -eq "$(tmp_config_get svn-remote.svn.branches-maxRev)" &&\n' span_id: 221 ) (Token id: Id.Lit_Chars val: '\t\ttest 8 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)"\n' span_id: 222 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:223) (Token id:Id.Lit_Chars val:'\t' span_id:224) ) } ) (C {(test_expect_success)} {(Id.KW_Bang '!') (MINGW)} {(SQ (Token id:Id.Lit_Chars val:'fresh clone with svn.authors-file in config' span_id:234))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:238) (Token id:Id.Lit_Chars val:'\t(\n' span_id:239) (Token id:Id.Lit_Chars val:'\t\trm -r "$GIT_DIR" &&\n' span_id:240) (Token id: Id.Lit_Chars val: '\t\ttest x = x"$(git config svn.authorsfile)" &&\n' span_id: 241 ) (Token id:Id.Lit_Chars val:'\t\ttest_config="$HOME"/.gitconfig &&\n' span_id:242) (Token id:Id.Lit_Chars val:'\t\tsane_unset GIT_DIR &&\n' span_id:243) (Token id:Id.Lit_Chars val:'\t\tgit config --global \\\n' span_id:244) (Token id: Id.Lit_Chars val: '\t\t svn.authorsfile "$HOME"/svn-authors &&\n' span_id: 245 ) (Token id: Id.Lit_Chars val: '\t\ttest x"$HOME"/svn-authors = x"$(git config svn.authorsfile)" &&\n' span_id: 246 ) (Token id:Id.Lit_Chars val:'\t\tgit svn clone "$svnrepo" gitconfig.clone &&\n' span_id:247) (Token id:Id.Lit_Chars val:'\t\tcd gitconfig.clone &&\n' span_id:248) (Token id: Id.Lit_Chars val: '\t\tnr_ex=$(git log | grep "^Author:.*example.com" | wc -l) &&\n' span_id: 249 ) (Token id:Id.Lit_Chars val:'\t\tnr_rev=$(git rev-list HEAD | wc -l) &&\n' span_id:250) (Token id:Id.Lit_Chars val:'\t\ttest $nr_rev -eq $nr_ex\n' span_id:251) (Token id:Id.Lit_Chars val:'\t)\n' span_id:252) ) } ) (C {(test_debug)} {(SQ (Token id:Id.Lit_Chars val:'GIT_DIR=gitconfig.clone/.git git log' span_id:259))} ) (C {(test_done)}) ] )