(List (If (Com {[LIT_CHARS test]} {[DQ [VarSub 1]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS "testgit::"][VarSub 2]]}) (= scope= flags=0 words=[] bindings=[('alias', {[LIT_CHARS _]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('alias', {[VarSub 1]})]) ) (= scope= flags=0 words=[] bindings=[('url', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('dir', {[DQ [VarSub GIT_DIR][LIT_CHARS /testgit/][VarSub alias]]})]) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [LIT_CHARS refs/testgit/][VarSub alias]]})]) (= scope= flags=0 words=[] bindings=[('default_refspec', {[DQ [LIT_CHARS "refs/heads/*:"][VarSub prefix][LIT_CHARS "/heads/*"]]})]) (= scope= flags=0 words=[] bindings=[('refspec', {[DQ [VarSub GIT_REMOTE_TESTGIT_REFSPEC test_op=VS_TEST_HYPHEN {[VarSub default_refspec]}]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub refspec]]}) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [LIT_CHARS refs]]})]) ) (= scope= flags=0 words=[] bindings=[('GIT_DIR', {[DQ [VarSub url][LIT_CHARS /.git]]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_DIR]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('force', {[SQ ]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub dir]]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_REMOTE_TESTGIT_NO_MARKS]]}) (List (= scope= flags=0 words=[] bindings=[('gitmarks', {[DQ [VarSub dir][LIT_CHARS /git.marks]]})]) (= scope= flags=0 words=[] bindings=[('testgitmarks', {[DQ [VarSub dir][LIT_CHARS /testgit.marks]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -e]} {[DQ [VarSub gitmarks]]}) (Com < (FilenameRedirectNode filename={[DQ [VarSub gitmarks]]} "> 1), > ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -e]} {[DQ [VarSub testgitmarks]]}) (Com < (FilenameRedirectNode filename={[DQ [VarSub testgitmarks]]} "> 1), > ) ) ) ) (While (Com {[LIT_CHARS read]} {[LIT_CHARS line]}) (Case to_match={[VarSub line]}, pat_word_list=[[{[LIT_CHARS capabilities]}], [{[LIT_CHARS list]}], [{[LIT_CHARS import] [LIT_OTHER "*"]}], [{[LIT_CHARS export]}], [{[LIT_CHARS option] [\ LIT_ESCAPED_CHAR "\\ "] [LIT_OTHER "*"]}], [{[SQ ]}]] (List (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub refspec]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "refspec "][VarSub refspec]]}) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub gitmarks]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "*import-marks "][VarSub gitmarks]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "*export-marks "][VarSub gitmarks]]}) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_REMOTE_TESTGIT_SIGNED_TAGS]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS signed-tags]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_REMOTE_TESTGIT_NO_PRIVATE_UPDATE]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS no-private-update]]}) ) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]}) ) (List (Com {[LIT_CHARS git]} {[LIT_CHARS for-each-ref]} {[LIT_CHARS --format] [LIT_OTHER "="] [SQ ]} {[SQ ]}) (= scope= flags=0 words=[] bindings=[('head', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS HEAD]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@"][VarSub head][LIT_CHARS " HEAD"]]}) (Com {[LIT_CHARS echo]}) ) (List (While (Com {[LIT_CHARS true]}) (List (= scope= flags=0 words=[] bindings=[('ref', {[DQ [VarSub line transform_ops=[VS_UNARY_POUND {[LIT_CHARS "* "]}]]]})]) (= scope= flags=0 words=[] bindings=[('refs', {[DQ [VarSub refs][LIT_CHARS " "][VarSub ref]]})]) (Com {[LIT_CHARS read]} {[LIT_CHARS line]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub line transform_ops=[VS_UNARY_DPERCENT {[LIT_CHARS " *"]}]]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS import]]}) (Com {[LIT_CHARS break]}) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub gitmarks]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "feature import-marks="][VarSub gitmarks]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "feature export-marks="][VarSub gitmarks]]}) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_REMOTE_TESTGIT_FAILURE]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "feature done"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "feature done"]]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS fast-export]} {[VarSub testgitmarks test_op=VS_TEST_COLON_PLUS {[DQ [LIT_CHARS "--import-marks="][VarSub testgitmarks]]}]} {[VarSub testgitmarks test_op=VS_TEST_COLON_PLUS {[DQ [LIT_CHARS "--export-marks="][VarSub testgitmarks]]}]} {[VarSub refs]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s#refs/heads/#"][VarSub prefix][LIT_CHARS "/heads/#g"]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS done]]}) ) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_REMOTE_TESTGIT_FAILURE]]}) (List (While (Com {[LIT_CHARS read]} {[LIT_CHARS line]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS done]]} {[LIT_OTHER "="]} {[DQ [VarSub line]]}) (Com {[LIT_CHARS break]}) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('before', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS for-each-ref]} {[LIT_CHARS --format] [LIT_OTHER "="] [SQ ]})]})]) (Com {[LIT_CHARS git]} {[LIT_CHARS fast-import]} {[VarSub force test_op=VS_TEST_COLON_PLUS {[LIT_CHARS --force]}]} {[VarSub testgitmarks test_op=VS_TEST_COLON_PLUS {[DQ [LIT_CHARS "--import-marks="][VarSub testgitmarks]]}]} {[VarSub testgitmarks test_op=VS_TEST_COLON_PLUS {[DQ [LIT_CHARS "--export-marks="][VarSub testgitmarks]]}]} {[LIT_CHARS --quiet]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS for-each-ref]} {[LIT_CHARS --format] [LIT_OTHER "="] [SQ ]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS ref]} {[LIT_CHARS a]}) (List (Case to_match={[DQ [VarSub before]]}, pat_word_list=[[{[LIT_OTHER "*"] [DQ [LIT_CHARS " "][VarSub ref][LIT_CHARS " "][VarSub a][LIT_CHARS " "]] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS continue]}) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_REMOTE_TESTGIT_PUSH_ERROR]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ok "][VarSub ref]]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "error "][VarSub ref][LIT_CHARS " "][VarSub GIT_REMOTE_TESTGIT_PUSH_ERROR]]}) ) ) ) ) (Com {[LIT_CHARS echo]}) ) (List (Com {[LIT_CHARS read]} {[LIT_CHARS cmd]} {[LIT_CHARS opt]} {[LIT_CHARS val]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [VarSub line][LIT_CHARS "\n"]]} 0), > ) (Case to_match={[VarSub opt]}, pat_word_list=[[{[LIT_CHARS force]}], [{[LIT_OTHER "*"]}]] (List (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[VarSub val]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS true]]}) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('force', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('force', {[SQ ]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ok]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS unsupported]]}) ) ) (Com {[LIT_CHARS exit]}) ) ) )