(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-read-tree.sh]} ) (FunctionDef maketree [] (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS .git/index]} {[LIT_CHARS .git/index.lock]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS clean]} {[LIT_CHARS -d]} {[LIT_CHARS -f]} {[LIT_CHARS -f]} {[LIT_CHARS -q]} {[LIT_CHARS -x]} ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('name', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS shift]} ) (AndOr OP_AND_IF (For it do_arg_iter) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('path', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [VarSub it]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub path]]})]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub it]]} < (FilenameRedirectNode filename={[DQ [VarSub path]]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[DQ [VarSub path]]} ) (Com {[LIT_CHARS exit]} ) ) ) ) ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[DQ [VarSub name]]} {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]} ) ) ) ) ) ) ) ) (FunctionDef settree [] (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS .git/index]} {[LIT_CHARS .git/index.lock]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS clean]} {[LIT_CHARS -d]} {[LIT_CHARS -f]} {[LIT_CHARS -f]} {[LIT_CHARS -q]} {[LIT_CHARS -x]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[DQ [VarSub 1]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout-index]} {[LIT_CHARS -f]} {[LIT_CHARS -q]} {[LIT_CHARS -u]} {[LIT_CHARS -a]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --refresh]} ) ) ) ) ) ) (FunctionDef checkindex [] (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS -s]} ) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s|^[0-7][0-7]* "][VarSub _x40][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS "[0-3]"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS "\t|"][\ LIT_ESCAPED_CHAR "\\1"][LIT_CHARS " |"]]} < (FilenameRedirectNode filename={[LIT_CHARS current]} "> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[LIT_CHARS current]} ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS setup]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_done]} ) )