(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)}) ] )