(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'git am handling submodules'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/lib-submodule-update.sh)}) (FuncDef name: am body: (BraceGroup children: [ (Pipeline children: [ (C {(git)} {(format-patch)} {(--stdout)} {(--ignore-submodules) (Lit_Other '=') (dirty)} {(DQ (..) ($ VSub_Number '$1'))} ) (C {(git)} {(am)} {(-)}) ] negated: F ) ] spids: [27] ) spids: [22 26] ) (C {(test_submodule_switch)} {(DQ (am))}) (FuncDef name: am_3way body: (BraceGroup children: [ (Pipeline children: [ (C {(git)} {(format-patch)} {(--stdout)} {(--ignore-submodules) (Lit_Other '=') (dirty)} {(DQ (..) ($ VSub_Number '$1'))} ) (C {(git)} {(am)} {(--3way)} {(-)}) ] negated: F ) ] spids: [68] ) spids: [63 67] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES) op: Equal rhs: {(1)} spids: [99] ) ] spids: [99] ) (C {(test_submodule_switch)} {(DQ (am_3way))}) (C {(test_expect_success)} {(SQ <'setup diff.submodule'>)} { (SQ <'\n'> <'\ttest_commit one &&\n'> <'\tINITIAL=$(git rev-parse HEAD) &&\n'> <'\n'> <'\tgit init submodule &&\n'> <'\t(\n'> <'\t\tcd submodule &&\n'> <'\t\ttest_commit two &&\n'> <'\t\tgit rev-parse HEAD >../initial-submodule\n'> <'\t) &&\n'> <'\tgit submodule add ./submodule &&\n'> <'\tgit commit -m first &&\n'> <'\n'> <'\t(\n'> <'\t\tcd submodule &&\n'> <'\t\ttest_commit three &&\n'> <'\t\tgit rev-parse HEAD >../first-submodule\n'> <'\t) &&\n'> <'\tgit add submodule &&\n'> <'\tgit commit -m second &&\n'> <'\tSECOND=$(git rev-parse HEAD) &&\n'> <'\n'> <'\t(\n'> <'\t\tcd submodule &&\n'> <'\t\tgit mv two.t four.t &&\n'> <'\t\tgit commit -m "second submodule" &&\n'> <'\t\tgit rev-parse HEAD >../second-submodule\n'> <'\t) &&\n'> <'\ttest_commit four &&\n'> <'\tgit add submodule &&\n'> <'\tgit commit --amend --no-edit &&\n'> <'\tTHIRD=$(git rev-parse HEAD) &&\n'> <'\tgit submodule update --init\n'> ) } ) (FuncDef name: run_test body: (BraceGroup children: [ (AndOr ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:START_COMMIT) op: Equal rhs: {($ VSub_Number '$1')} spids: [159] ) ] spids: [159] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXPECT) op: Equal rhs: {($ VSub_Number '$2')} spids: [165] ) ] spids: [165] ) (C {(test_might_fail)} {(git)} {(am)} {(--abort)}) (C {(git)} {(reset)} {(--hard)} {($ VSub_Name '$START_COMMIT')}) (C {(rm)} {(-f)} {(Lit_Other '*') (.patch)}) (C {(git)} {(format-patch)} {(-1)}) (C {(git)} {(reset)} {(--hard)} {($ VSub_Name '$START_COMMIT') (Lit_Other '^')}) (C {(git)} {(submodule)} {(update)}) (C {(git)} {(am)} {(Lit_Other '*') (.patch)}) (C {(git)} {(submodule)} {(update)}) (SimpleCommand words: [{(git)} {(-C)} {(submodule)} {(rev-parse)} {(HEAD)}] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(actual)} spids:[270])] ) (C {(test_cmp)} {($ VSub_Name '$EXPECT')} {(actual)}) ] ) ] spids: [156] ) spids: [152 155] ) (C {(test_expect_success)} {(SQ <'diff.submodule unset'>)} {(SQ <'\n'> <'\ttest_unconfig diff.submodule &&\n'> <'\trun_test $SECOND first-submodule\n'>)} ) (C {(test_expect_success)} {(SQ <'diff.submodule unset with extra file'>)} {(SQ <'\n'> <'\ttest_unconfig diff.submodule &&\n'> <'\trun_test $THIRD second-submodule\n'>)} ) (C {(test_expect_success)} {(SQ <'diff.submodule=log'>)} { (SQ <'\n'> <'\ttest_config diff.submodule log &&\n'> <'\trun_test $SECOND first-submodule\n'>) } ) (C {(test_expect_success)} {(SQ <'diff.submodule=log with extra file'>)} { (SQ <'\n'> <'\ttest_config diff.submodule log &&\n'> <'\trun_test $THIRD second-submodule\n'>) } ) (C {(test_done)}) ] )