(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn dcommit honors auto-props">)} spids: [10] ) ] spids: [10] ) (C {(.)} {(./lib-git-svn.sh)}) (FuncDef name: generate_auto_props body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("[miscellany]\n") ("enable-auto-props=") ($ 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") ) } do_expansion: True here_end: EOF was_filled: True spids: [29] ) ] ) ] spids: [25] ) spids: [21 24] ) (C {(test_expect_success)} {(SQ <"initialize git svn">)} { (SQ <"\n"> <"\tmkdir import &&\n"> <"\t(\n"> <"\t\tcd import &&\n"> <"\t\techo foo >foo &&\n"> <"\t\tsvn_cmd import -m \"import for git svn\" . \"$svnrepo\"\n"> <"\t) &&\n"> <"\trm -rf import &&\n"> <"\tgit svn init \"$svnrepo\" &&\n"> <"\tgit svn fetch\n"> ) } ) (C {(test_expect_success)} {(SQ <"enable auto-props config">)} {(SQ <"\n"> <"\tmkdir user &&\n"> <"\tgenerate_auto_props yes >user/config\n">)} ) (C {(test_expect_success)} {(SQ <"add files matching auto-props">)} { (SQ <"\n"> <"\twrite_script exec1.sh </dev/null &&\n"> <"\techo \"hello\" >hello.txt &&\n"> <"\techo bar >bar &&\n"> <"\tgit add exec1.sh hello.txt bar &&\n"> <"\tgit commit -m \"files for enabled auto-props\" &&\n"> <"\tgit svn dcommit --config-dir=user\n"> ) } ) (C {(test_expect_success)} {(SQ <"disable auto-props config">)} {(SQ <"\n"> <"\tgenerate_auto_props no >user/config\n">)} ) (C {(test_expect_success)} {(SQ <"add files matching disabled auto-props">)} { (SQ <"\n"> <"\twrite_script exec2.sh </dev/null &&\n"> <"\techo \"world\" >world.txt &&\n"> <"\techo zot >zot &&\n"> <"\tgit add exec2.sh world.txt zot &&\n"> <"\tgit commit -m \"files for disabled auto-props\" &&\n"> <"\tgit svn dcommit --config-dir=user\n"> ) } ) (C {(test_expect_success)} {(SQ <"check resulting svn repository">)} { (SQ <"\n"> <"(\n"> <"\tmkdir work &&\n"> <"\tcd work &&\n"> <"\tsvn_cmd co \"$svnrepo\" &&\n"> <"\tcd svnrepo &&\n"> <"\n"> <"\t# Check properties from first commit.\n"> <"\tif test_have_prereq POSIXPERM\n"> <"\tthen\n"> <"\t\ttest \"x$(svn_cmd propget svn:executable exec1.sh)\" = \"x*\"\n"> <"\tfi &&\n"> <"\ttest \"x$(svn_cmd propget svn:mime-type exec1.sh)\" = \\\n"> <"\t \"xapplication/x-shellscript\" &&\n"> <"\ttest \"x$(svn_cmd propget svn:mime-type hello.txt)\" = \"xtext/plain\" &&\n"> <"\ttest \"x$(svn_cmd propget svn:eol-style hello.txt)\" = \"xnative\" &&\n"> <"\ttest \"x$(svn_cmd propget svn:mime-type bar)\" = \"x\" &&\n"> <"\n"> <"\t# Check properties from second commit.\n"> <"\tif test_have_prereq POSIXPERM\n"> <"\tthen\n"> <"\t\ttest \"x$(svn_cmd propget svn:executable exec2.sh)\" = \"x*\"\n"> <"\tfi &&\n"> <"\ttest \"x$(svn_cmd propget svn:mime-type exec2.sh)\" = \"x\" &&\n"> <"\ttest \"x$(svn_cmd propget svn:mime-type world.txt)\" = \"x\" &&\n"> <"\ttest \"x$(svn_cmd propget svn:eol-style world.txt)\" = \"x\" &&\n"> <"\ttest \"x$(svn_cmd propget svn:mime-type zot)\" = \"x\"\n"> <")\n"> ) } ) (C {(test_expect_success)} {(SQ <"check renamed file">)} { (SQ <"\n"> <"\ttest -d user &&\n"> <"\tgenerate_auto_props yes > user/config &&\n"> <"\tgit mv foo foo.sh &&\n"> <"\tgit commit -m \"foo => foo.sh\" &&\n"> <"\tgit svn dcommit --config-dir=user &&\n"> <"\t(\n"> <"\t\tcd work/svnrepo &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\ttest ! -e foo &&\n"> <"\t\ttest -e foo.sh &&\n"> <"\t\ttest \"x$(svn_cmd propget svn:mime-type foo.sh)\" = \\\n"> <"\t\t \"xapplication/x-shellscript\" &&\n"> <"\t\ttest \"x$(svn_cmd propget svn:eol-style foo.sh)\" = \"xLF\"\n"> <"\t)\n"> ) } ) (C {(test_done)}) ] )