(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 merge detection' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_ver) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:25) command_list: (command.CommandList children: [(C {(svn)} {(--version)} {(--quiet)})] ) ) ) } spids: [23] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$svn_ver')} arms: [ (case_arm pat_list: [ {(0.) (Id.Lit_Star '*')} {(1.) (Id.Lit_LBracket '[') (0-4) (Id.Lit_RBracket ']') (.) (Id.Lit_Star '*')} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: { (DQ ('skipping git-svn test - SVN too old (') ($ Id.VSub_DollarName '$svn_ver') (')') ) } spids: [54] ) ] ) (C {(test_done)}) ] spids: [40 51 65 -1] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'initialize source svn repo' span_id:73))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:77) (Token id: Id.Lit_Chars val: '\tsvn_cmd mkdir -m x "$svnrepo"/trunk &&\n' span_id: 78 ) (Token id:Id.Lit_Chars val:'\tsvn_cmd mkdir -m x "$svnrepo"/branches &&\n' span_id:79) (Token id: Id.Lit_Chars val: '\tsvn_cmd co "$svnrepo"/trunk "$SVN_TREE" &&\n' span_id: 80 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:81) (Token id:Id.Lit_Chars val:'\t\tcd "$SVN_TREE" &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\t\ttouch foo &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd add foo &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "initial commit" &&\n' span_id:85) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 &&\n' span_id: 86 ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd switch "$svnrepo"/branches/branch1 &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\ttouch bar &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd add bar &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m branch1 &&\n' span_id:90) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd cp -m branch "$svnrepo"/branches/branch1 "$svnrepo"/branches/branch2 &&\n' span_id: 91 ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd switch "$svnrepo"/branches/branch2 &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\t\ttouch baz &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd add baz &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m branch2 &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd switch "$svnrepo"/trunk &&\n' span_id:96) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd merge --reintegrate "$svnrepo"/branches/branch2 &&\n' span_id: 97 ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "merge branch2"\n' span_id:98) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\trm -rf "$SVN_TREE"\n' span_id:100) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clone svn repo' span_id:107))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:111) (Token id:Id.Lit_Chars val:'\tgit svn init -s "$svnrepo" &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\tgit svn fetch\n' span_id:113) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'verify merge commit' span_id:120))} { (SQ (Token id:Id.Lit_Chars val:'x=$(git rev-parse HEAD^2) &&\n' span_id:124) (Token id: Id.Lit_Chars val: '\ty=$(git rev-parse origin/branch2) &&\n' span_id: 125 ) (Token id:Id.Lit_Chars val:'\ttest "x$x" = "x$y"\n' span_id:126) ) } ) (C {(test_done)}) ] )