(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 dcommit honors auto-props' span_id:12))} spids: [10] ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (command.ShFunction name: generate_auto_props body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:29) fd: -1 here_begin: {(EOF)} here_end_span_id: 41 stdin_parts: [ ('[miscellany]\n') ('enable-auto-props=') ($ Id.VSub_Number '$1') ('\n') ('[auto-props]\n') ('*.sh = svn:mime-type=application/x-shellscript; svn:eol-style=LF\n') ('*.txt = svn:mime-type=text/plain; svn:eol-style = native\n') ] ) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'initialize git svn' span_id:48))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\tmkdir import &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\t(\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\tcd import &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\techo foo >foo &&\n' span_id:56) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd import -m "import for git svn" . "$svnrepo"\n' span_id: 57 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\trm -rf import &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\tgit svn init "$svnrepo" &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\tgit svn fetch\n' span_id:61) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'enable auto-props config' span_id:68))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id:Id.Lit_Chars val:'\tmkdir user &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgenerate_auto_props yes >user/config\n' span_id:74) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add files matching auto-props' span_id:81))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:85) (Token id:Id.Lit_Chars val:'\twrite_script exec1.sh </dev/null &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\techo "hello" >hello.txt &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\techo bar >bar &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\tgit add exec1.sh hello.txt bar &&\n' span_id:89) (Token id: Id.Lit_Chars val: '\tgit commit -m "files for enabled auto-props" &&\n' span_id: 90 ) (Token id:Id.Lit_Chars val:'\tgit svn dcommit --config-dir=user\n' span_id:91) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'disable auto-props config' span_id:98))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:102) (Token id:Id.Lit_Chars val:'\tgenerate_auto_props no >user/config\n' span_id:103) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add files matching disabled auto-props' span_id:110))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:114) (Token id:Id.Lit_Chars val:'\twrite_script exec2.sh </dev/null &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\techo "world" >world.txt &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\techo zot >zot &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\tgit add exec2.sh world.txt zot &&\n' span_id:118) (Token id: Id.Lit_Chars val: '\tgit commit -m "files for disabled auto-props" &&\n' span_id: 119 ) (Token id:Id.Lit_Chars val:'\tgit svn dcommit --config-dir=user\n' span_id:120) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check resulting svn repository' span_id:127))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:131) (Token id:Id.Lit_Chars val:'(\n' span_id:132) (Token id:Id.Lit_Chars val:'\tmkdir work &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\tcd work &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\tsvn_cmd co "$svnrepo" &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\tcd svnrepo &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\n' span_id:137) (Token id:Id.Lit_Chars val:'\t# Check properties from first commit.\n' span_id:138) (Token id:Id.Lit_Chars val:'\tif test_have_prereq POSIXPERM\n' span_id:139) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:140) (Token id: Id.Lit_Chars val: '\t\ttest "x$(svn_cmd propget svn:executable exec1.sh)" = "x*"\n' span_id: 141 ) (Token id:Id.Lit_Chars val:'\tfi &&\n' span_id:142) (Token id: Id.Lit_Chars val: '\ttest "x$(svn_cmd propget svn:mime-type exec1.sh)" = \\\n' span_id: 143 ) (Token id:Id.Lit_Chars val:'\t "xapplication/x-shellscript" &&\n' span_id:144) (Token id: Id.Lit_Chars val: '\ttest "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" &&\n' span_id: 145 ) (Token id: Id.Lit_Chars val: '\ttest "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" &&\n' span_id: 146 ) (Token id:Id.Lit_Chars val:'\ttest "x$(svn_cmd propget svn:mime-type bar)" = "x" &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\n' span_id:148) (Token id:Id.Lit_Chars val:'\t# Check properties from second commit.\n' span_id:149) (Token id:Id.Lit_Chars val:'\tif test_have_prereq POSIXPERM\n' span_id:150) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:151) (Token id: Id.Lit_Chars val: '\t\ttest "x$(svn_cmd propget svn:executable exec2.sh)" = "x*"\n' span_id: 152 ) (Token id:Id.Lit_Chars val:'\tfi &&\n' span_id:153) (Token id: Id.Lit_Chars val: '\ttest "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" &&\n' span_id: 154 ) (Token id: Id.Lit_Chars val: '\ttest "x$(svn_cmd propget svn:mime-type world.txt)" = "x" &&\n' span_id: 155 ) (Token id: Id.Lit_Chars val: '\ttest "x$(svn_cmd propget svn:eol-style world.txt)" = "x" &&\n' span_id: 156 ) (Token id:Id.Lit_Chars val:'\ttest "x$(svn_cmd propget svn:mime-type zot)" = "x"\n' span_id:157) (Token id:Id.Lit_Chars val:')\n' span_id:158) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check renamed file' span_id:165))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:169) (Token id:Id.Lit_Chars val:'\ttest -d user &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\tgenerate_auto_props yes > user/config &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\tgit mv foo foo.sh &&\n' span_id:172) (Token id:Id.Lit_Chars val:'\tgit commit -m "foo => foo.sh" &&\n' span_id:173) (Token id: Id.Lit_Chars val: '\tgit svn dcommit --config-dir=user &&\n' span_id: 174 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:175) (Token id:Id.Lit_Chars val:'\t\tcd work/svnrepo &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\t\ttest ! -e foo &&\n' span_id:178) (Token id:Id.Lit_Chars val:'\t\ttest -e foo.sh &&\n' span_id:179) (Token id: Id.Lit_Chars val: '\t\ttest "x$(svn_cmd propget svn:mime-type foo.sh)" = \\\n' span_id: 180 ) (Token id:Id.Lit_Chars val:'\t\t "xapplication/x-shellscript" &&\n' span_id:181) (Token id: Id.Lit_Chars val: '\t\ttest "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF"\n' span_id: 182 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:183) ) } ) (C {(test_done)}) ] )