(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 authorship' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup svn repository' span_id:17))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id: Id.Lit_Chars val: '\tsvn_cmd checkout "$svnrepo" work.svn &&\n' span_id: 22 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:23) (Token id:Id.Lit_Chars val:'\t\tcd work.svn &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\t\techo >file\n' span_id:25) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd add file\n' span_id:26) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "first commit" file\n' span_id:27) (Token id:Id.Lit_Chars val:'\t)\n' span_id:28) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'interact with it via git svn' span_id:35))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:39) (Token id:Id.Lit_Chars val:'\tmkdir work.git &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\t(\n' span_id:41) (Token id:Id.Lit_Chars val:'\t\tcd work.git &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\t\tgit svn init "$svnrepo"\n' span_id:43) (Token id:Id.Lit_Chars val:'\t\tgit svn fetch &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\n' span_id:45) (Token id:Id.Lit_Chars val:'\t\techo modification >file &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\t\tgit commit -a -m second &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\t\tgit svn dcommit &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\t\techo "further modification" >file &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\tgit commit -a -m third &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:57) (Token id: Id.Lit_Chars val: '\t\tgit svn --add-author-from dcommit &&\n' span_id: 58 ) (Token id:Id.Lit_Chars val:'\n' span_id:59) (Token id: Id.Lit_Chars val: '\t\techo "yet further modification" >file &&\n' span_id: 60 ) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\t\tgit commit -a -m fourth &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\n' span_id:63) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\tgit svn --add-author-from --use-log-author dcommit &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\tgit log &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\n' span_id:68) (Token id:Id.Lit_Chars val:'\t\tgit show -s HEAD^^ >../actual.2 &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\t\tgit show -s HEAD^ >../actual.3 &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\tgit show -s HEAD >../actual.4\n' span_id:71) (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id: Id.Lit_Chars val: '\t# Make sure that --add-author-from without --use-log-author\n' span_id: 75 ) (Token id:Id.Lit_Chars val:'\t# did not affect the authorship information\n' span_id:76) (Token id: Id.Lit_Chars val: '\tmyself=$(grep "^Author: " actual.2) &&\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\tunaffected=$(grep "^Author: " actual.3) &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\ttest "z$myself" = "z$unaffected" &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id: Id.Lit_Chars val: '\t# Make sure lack of --add-author-from did not add cruft\n' span_id: 81 ) (Token id:Id.Lit_Chars val:'\t! grep "^ From: A U Thor " actual.2 &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\n' span_id:83) (Token id:Id.Lit_Chars val:'\t# Make sure --add-author-from added cruft\n' span_id:84) (Token id: Id.Lit_Chars val: '\tgrep "^ From: A U Thor " actual.3 &&\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\tgrep "^ From: A U Thor " actual.4 &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\n' span_id:87) (Token id: Id.Lit_Chars val: '\t# Make sure --add-author-from with --use-log-author affected\n' span_id: 88 ) (Token id:Id.Lit_Chars val:'\t# the authorship information\n' span_id:89) (Token id: Id.Lit_Chars val: '\tgrep "^Author: A U Thor " actual.4 &&\n' span_id: 90 ) (Token id:Id.Lit_Chars val:'\n' span_id:91) (Token id: Id.Lit_Chars val: '\t# Make sure there are no commit messages with excess blank lines\n' span_id: 92 ) (Token id:Id.Lit_Chars val:'\ttest $(grep "^ " actual.2 | wc -l) = 3 &&\n' span_id:93) (Token id: Id.Lit_Chars val: '\ttest $(grep "^ " actual.3 | wc -l) = 5 &&\n' span_id: 94 ) (Token id:Id.Lit_Chars val:'\ttest $(grep "^ " actual.4 | wc -l) = 5 &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\n' span_id:96) (Token id: Id.Lit_Chars val: '\t# Make sure there are no svn commit messages with excess blank lines\n' span_id: 97 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:98) (Token id:Id.Lit_Chars val:'\t\tcd work.svn &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\t\t\n' span_id:101) (Token id:Id.Lit_Chars val:'\t\ttest $(svn_cmd log -r2:2 | wc -l) = 5 &&\n' span_id:102) (Token id: Id.Lit_Chars val: '\t\ttest $(svn_cmd log -r4:4 | wc -l) = 7\n' span_id: 103 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:104) ) } ) (C {(test_done)}) ] )