(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (FunctionDef mk_repo_pair [] (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS workbench]} {[LIT_CHARS upstream]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_create_repo]} {[LIT_CHARS upstream]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_create_repo]} {[LIT_CHARS workbench]}) (AndOr OP_AND_IF (Subshell (List (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS upstream]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS receive.denyCurrentBranch]} {[LIT_CHARS warn]}) (AndOr OP_AND_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS .git/hooks]}) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .git/hooks/pre-receive]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "if test -n \"$GIT_PUSH_OPTION_COUNT\"; then\n"] [LIT_CHARS "i=0\n"] [LIT_CHARS ">hooks/pre-receive.push_options\n"] [LIT_CHARS "while test \"$i\" -lt \"$GIT_PUSH_OPTION_COUNT\"; do\n"] [LIT_CHARS "eval \"value=\\$GIT_PUSH_OPTION_$i\"\n"] [LIT_CHARS "echo $value >>hooks/pre-receive.push_options\n"] [LIT_CHARS "i=$((i + 1))\n"] [LIT_CHARS "done\n"] [LIT_CHARS "fi\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS .git/hooks/pre-receive]}) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .git/hooks/post-receive]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "if test -n \"$GIT_PUSH_OPTION_COUNT\"; then\n"] [LIT_CHARS "i=0\n"] [LIT_CHARS ">hooks/post-receive.push_options\n"] [LIT_CHARS "while test \"$i\" -lt \"$GIT_PUSH_OPTION_COUNT\"; do\n"] [LIT_CHARS "eval \"value=\\$GIT_PUSH_OPTION_$i\"\n"] [LIT_CHARS "echo $value >>hooks/post-receive.push_options\n"] [LIT_CHARS "i=$((i + 1))\n"] [LIT_CHARS "done\n"] [LIT_CHARS "fi\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS .git/hooks/post-receive]}) ) ) ) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS workbench]}) (Com {[LIT_CHARS git]} {[LIT_CHARS remote]} {[LIT_CHARS add]} {[LIT_CHARS up]} {[LIT_CHARS ../upstream]}) ) ) ) ) ) ) ) (FunctionDef test_refs [] (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_OTHER "="]} {[LIT_CHARS 2]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS -C]} {[LIT_CHARS upstream]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub 1]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS -C]} {[LIT_CHARS workbench]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub 2]]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[LIT_CHARS actual]}) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )