(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 commit-diff clobber' span_id:11))} spids: [9] ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'initialize repo' span_id:22))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:26) (Token id:Id.Lit_Chars val:'\tmkdir import &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\t(\n' span_id:28) (Token id:Id.Lit_Chars val:'\t\tcd import &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\t\techo initial >file &&\n' span_id:30) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd import -m "initial" . "$svnrepo"\n' span_id: 31 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\techo initial > file &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\tgit update-index --add file &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "initial"\n' span_id:35) (Token id:Id.Lit_Chars val:'\t' span_id:36) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit change from svn side' span_id:42))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:46) (Token id:Id.Lit_Chars val:'\tsvn_cmd co "$svnrepo" t.svn &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\t(\n' span_id:48) (Token id:Id.Lit_Chars val:'\t\tcd t.svn &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\t\techo second line from svn >>file &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\t\tpoke file &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "second line from svn"\n' span_id:52) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\trm -rf t.svn\n' span_id:54) (Token id:Id.Lit_Chars val:'\t' span_id:55) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit conflicting change from git' span_id:62))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\techo second line from git >> file &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "second line from git" &&\n' span_id:68) (Token id: Id.Lit_Chars val: '\ttest_must_fail git svn commit-diff -r1 HEAD~1 HEAD "$svnrepo"\n' span_id: 69 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit complementing change from git' span_id:76))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id:Id.Lit_Chars val:'\tgit reset --hard HEAD~1 &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\techo second line from svn >> file &&\n' span_id:82) (Token id: Id.Lit_Chars val: '\tgit commit -a -m "second line from svn" &&\n' span_id: 83 ) (Token id:Id.Lit_Chars val:'\techo third line from git >> file &&\n' span_id:84) (Token id: Id.Lit_Chars val: '\tgit commit -a -m "third line from git" &&\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\tgit svn commit-diff -r2 HEAD~1 HEAD "$svnrepo"\n' span_id:86) (Token id:Id.Lit_Chars val:'\t' span_id:87) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'dcommit fails to commit because of conflict' span_id:94))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id:Id.Lit_Chars val:'\tgit svn init "$svnrepo" &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tgit svn fetch &&\n' span_id:100) (Token id: Id.Lit_Chars val: '\tgit reset --hard refs/remotes/git-svn &&\n' span_id: 101 ) (Token id:Id.Lit_Chars val:'\tsvn_cmd co "$svnrepo" t.svn &&\n' span_id:102) (Token id:Id.Lit_Chars val:'\t(\n' span_id:103) (Token id:Id.Lit_Chars val:'\t\tcd t.svn &&\n' span_id:104) (Token id: Id.Lit_Chars val: '\t\techo fourth line from svn >>file &&\n' span_id: 105 ) (Token id:Id.Lit_Chars val:'\t\tpoke file &&\n' span_id:106) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd commit -m "fourth line from svn"\n' span_id: 107 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\trm -rf t.svn &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\techo "fourth line from git" >> file &&\n' span_id:110) (Token id: Id.Lit_Chars val: '\tgit commit -a -m "fourth line from git" &&\n' span_id: 111 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git svn dcommit\n' span_id:112) (Token id:Id.Lit_Chars val:'\t' span_id:113) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'dcommit does the svn equivalent of an index merge' span_id: 120 ) ) } { (DQ ('\n') ('\tgit reset --hard refs/remotes/git-svn &&\n') ("\techo 'index merge' > file2 &&\n") ('\tgit update-index --add file2 &&\n') ("\tgit commit -a -m 'index merge' &&\n") ("\techo 'more changes' >> file2 &&\n") ('\tgit update-index file2 &&\n') ("\tgit commit -a -m 'more changes' &&\n") ('\tgit svn dcommit\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit another change from svn side' span_id:140))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:144) (Token id:Id.Lit_Chars val:'\tsvn_cmd co "$svnrepo" t.svn &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\t(\n' span_id:146) (Token id:Id.Lit_Chars val:'\t\tcd t.svn &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\t\techo third line from svn >>file &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\t\tpoke file &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "third line from svn"\n' span_id:150) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\trm -rf t.svn\n' span_id:152) (Token id:Id.Lit_Chars val:'\t' span_id:153) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'multiple dcommit from git svn will not clobber svn' span_id: 160 ) ) } { (DQ ('\n') ('\tgit reset --hard refs/remotes/git-svn &&\n') ('\techo new file >> new-file &&\n') ('\tgit update-index --add new-file &&\n') ("\tgit commit -a -m 'new file' &&\n") ('\techo clobber > file &&\n') ("\tgit commit -a -m 'clobber' &&\n") ('\ttest_must_fail git svn dcommit\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check that rebase really failed' span_id:180))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:184) (Token id:Id.Lit_Chars val:'\ttest -d .git/rebase-apply\n' span_id:185) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'resolve, continue the rebase and dcommit' span_id:192))} { (DQ ('\n') ('\techo clobber and I really mean it > file &&\n') ('\tgit update-index file &&\n') ('\tgit rebase --continue &&\n') ('\tgit svn dcommit\n') ('\t') ) } ) (C {(test_done)}) ] )