(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-submodule-update.sh]}) (FunctionDef git_revert [] (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS status]} {[LIT_CHARS -su]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS ls]} {[LIT_CHARS -1pR]} {[LIT_OTHER "*"]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS tar]} {[LIT_CHARS cf]} {[DQ [VarSub TRASH_DIRECTORY][LIT_CHARS /tmp.tar]]} {[LIT_OTHER "*"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[DQ [VarSub 1]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS revert]} {[LIT_CHARS HEAD]}) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_OTHER "*"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS tar]} {[LIT_CHARS xf]} {[DQ [VarSub TRASH_DIRECTORY][LIT_CHARS /tmp.tar]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS status]} {[LIT_CHARS -su]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS ls]} {[LIT_CHARS -1pR]} {[LIT_OTHER "*"]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} >"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[LIT_CHARS actual]}) (Com {[LIT_CHARS git]} {[LIT_CHARS revert]} {[LIT_CHARS HEAD]}) ) ) ) ) ) ) ) ) ) ) ) (= scope= flags=0 words=[] bindings=[('KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR', {[LIT_CHARS 1]})]) (Com {[LIT_CHARS test_submodule_switch]} {[DQ [LIT_CHARS git_revert]]}) (Com {[LIT_CHARS test_done]}) )