(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file &&\n"> file &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('sub1sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS super/sub1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('sub3sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS super/sub3]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('pwd', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Entering 'sub1'\n"][VarSub pwd][LIT_CHARS /clone-foo1-sub1-][VarSub sub1sha1][LIT_CHARS "\n"][LIT_CHARS "Entering 'sub3'\n"][VarSub pwd][LIT_CHARS /clone-foo3-sub3-][VarSub sub3sha1][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Entering '../sub1'\n"][VarSub pwd][LIT_CHARS /clone-foo1-../sub1-][VarSub sub1sha1][LIT_CHARS "\n"][LIT_CHARS "Entering '../sub3'\n"][VarSub pwd][LIT_CHARS /clone-foo3-../sub3-][VarSub sub3sha1][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../../actual\n"> ]}) (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 cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Entering 'nested1'\n"][LIT_CHARS "Entering 'nested1/nested2'\n"][LIT_CHARS "Entering 'nested1/nested2/nested3'\n"][LIT_CHARS "Entering 'nested1/nested2/nested3/submodule'\n"][LIT_CHARS "Entering 'sub1'\n"][LIT_CHARS "Entering 'sub2'\n"][LIT_CHARS "Entering 'sub3'\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../actual\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Entering '../nested1'\n"][LIT_CHARS "Entering '../nested1/nested2'\n"][LIT_CHARS "Entering '../nested1/nested2/nested3'\n"][LIT_CHARS "Entering '../nested1/nested2/nested3/submodule'\n"][LIT_CHARS "Entering '../sub1'\n"][LIT_CHARS "Entering '../sub2'\n"][LIT_CHARS "Entering '../sub3'\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../../actual\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "nested1-nested1\n"][LIT_CHARS "nested2-nested2\n"][LIT_CHARS "nested3-nested3\n"][LIT_CHARS "submodule-submodule\n"][LIT_CHARS "foo1-sub1\n"][LIT_CHARS "foo2-sub2\n"][LIT_CHARS "foo3-sub3\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../actual\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (= scope= flags=0 words=[] bindings=[('nested1sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/nested1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('nested2sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/nested1/nested2]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('nested3sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/nested1/nested2/nested3]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('submodulesha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/nested1/nested2/nested3/submodule]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('sub1sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/sub1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('sub2sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/sub2]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('sub3sha1', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/sub3]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('sub1sha1_short', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/sub1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('sub2sha1_short', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS clone3/sub2]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD]}) )]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " "][VarSub nested1sha1][LIT_CHARS " nested1 (heads/master)\n"][LIT_CHARS " "][VarSub nested2sha1][LIT_CHARS " nested1/nested2 (heads/master)\n"][LIT_CHARS " "][VarSub nested3sha1][LIT_CHARS " nested1/nested2/nested3 (heads/master)\n"][LIT_CHARS " "][VarSub submodulesha1][LIT_CHARS " nested1/nested2/nested3/submodule (heads/master)\n"][LIT_CHARS " "][VarSub sub1sha1][LIT_CHARS " sub1 ("][VarSub sub1sha1_short][LIT_CHARS ")\n"][LIT_CHARS " "][VarSub sub2sha1][LIT_CHARS " sub2 ("][VarSub sub2sha1_short][LIT_CHARS ")\n"][LIT_CHARS " "][VarSub sub3sha1][LIT_CHARS " sub3 (heads/master)\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../actual\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " "][VarSub nested1sha1][LIT_CHARS " nested1 (heads/master)\n"][LIT_CHARS "+"][VarSub nested2sha1][LIT_CHARS " nested1/nested2 (file2~1)\n"][LIT_CHARS " "][VarSub nested3sha1][LIT_CHARS " nested1/nested2/nested3 (heads/master)\n"][LIT_CHARS " "][VarSub submodulesha1][LIT_CHARS " nested1/nested2/nested3/submodule (heads/master)\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../actual\n"> ]}) (= scope= flags=0 words=[] bindings=[('nested2sha1', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS -C]} {[LIT_CHARS clone3/nested1/nested2]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " "][VarSub nested1sha1][LIT_CHARS " ../nested1 (heads/master)\n"][LIT_CHARS "+"][VarSub nested2sha1][LIT_CHARS " ../nested1/nested2 (file2)\n"][LIT_CHARS " "][VarSub nested3sha1][LIT_CHARS " ../nested1/nested2/nested3 (heads/master)\n"][LIT_CHARS " "][VarSub submodulesha1][LIT_CHARS " ../nested1/nested2/nested3/submodule (heads/master)\n"][LIT_CHARS " "][VarSub sub1sha1][LIT_CHARS " ../sub1 ("][VarSub sub1sha1_short][LIT_CHARS ")\n"][LIT_CHARS " "][VarSub sub2sha1][LIT_CHARS " ../sub2 ("][VarSub sub2sha1_short][LIT_CHARS ")\n"][LIT_CHARS " "][VarSub sub3sha1][LIT_CHARS " ../sub3 (heads/master)\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../../actual\n"> ]}) (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 ../expected &&\n"> ../actual\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../expected &&\n"> ../actual\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../expected &&\n"> ../actual\n"> ]}) (Com {[LIT_CHARS test_done]}) )