(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: { (SQ <"Test for submodule diff on non-checked out submodule\n"> <"\n"> <"This test tries to verify that add_submodule_odb works when the submodule was\n"> <"initialized previously but the checkout has since been removed.\n"> ) } spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_encoding) op: Equal rhs: {(DQ (ISO8859-1))} spids: [30] ) ] spids: [30] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:added) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(printf)} { (DQ (hinzugef) (EscapedLiteralPart token:<Lit_EscapedChar "\\3">) (03) (EscapedLiteralPart token: <Lit_EscapedChar "\\2"> ) (74gt) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [43 53] ) } spids: [42] ) ] spids: [42] ) (FuncDef name: add_file body: (BraceGroup children: [ (Subshell child: (AndOr children: [ (C {(cd)} {(DQ ($ VSub_Number "$1"))}) (AndOr children: [ (C {(shift)}) (AndOr children: [ (ForEach iter_name: name do_arg_iter: True body: (DoGroup children: [ (AndOr children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name "$name"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$name"))} spids: [95] ) ] ) (AndOr children: [ (C {(git)} {(add)} {(DQ ($ VSub_Name "$name"))}) (AndOr children: [ (C {(test_tick)}) (Pipeline children: [ (C {(echo)} { (DQ ("Add ") ($ VSub_Name "$name") (" (") ($ VSub_Name "$added") (" ") ($ VSub_Name "$name") (")") ) } ) (C {(iconv)} {(-f)} {(utf-8)} {(-t)} {($ VSub_Name "$test_encoding")} ) (C {(git)} {(-c)} { (DQ ("i18n.commitEncoding=") ($ VSub_Name "$test_encoding") ) } {(commit)} {(-F)} {(-)} ) ] negated: False ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [86 170] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [172] ) ] spids: [-1 -1] ) (C {(git)} {(rev-parse)} {(--short)} {(--verify)} {(HEAD)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) spids: [64 189] ) ] spids: [61] ) spids: [56 60] ) (FuncDef name: commit_file body: (BraceGroup children: [ (AndOr children: [ (C {(test_tick)}) (SimpleCommand words: [ {(git)} {(commit)} {(DQ ($ VSub_At "$@"))} {(-m)} {(DQ ("Commit ") ($ VSub_Star "$*"))} ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[222])] ) ] op_id: Op_DAmp ) ] spids: [199] ) spids: [194 198] ) (C {(test_expect_success)} {(SQ <"setup - submodules">)} { (SQ <"\n"> <"\ttest_create_repo sm2 &&\n"> <"\tadd_file . foo &&\n"> <"\tadd_file sm2 foo1 foo2 &&\n"> <"\tsmhead1=$(git -C sm2 rev-parse --short --verify HEAD)\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup - git submodule add">)} { (SQ <"\n"> <"\tgit submodule add ./sm2 sm1 &&\n"> <"\tcommit_file sm1 .gitmodules &&\n"> <"\tgit diff-tree -p --no-commit-id --submodule=log HEAD -- sm1 >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm1 0000000...$smhead1 (new submodule)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"submodule directory removed">)} { (SQ <"\n"> <"\trm -rf sm1 &&\n"> <"\tgit diff-tree -p --no-commit-id --submodule=log HEAD -- sm1 >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm1 0000000...$smhead1 (new submodule)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup - submodule multiple commits">)} { (SQ <"\n"> <"\tgit submodule update --checkout sm1 &&\n"> <"\tsmhead2=$(add_file sm1 foo3 foo4) &&\n"> <"\tcommit_file sm1 &&\n"> <"\tgit diff-tree -p --no-commit-id --submodule=log HEAD >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm1 $smhead1..$smhead2:\n"> <"\t > Add foo4 ($added foo4)\n"> <"\t > Add foo3 ($added foo3)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"submodule removed multiple commits">)} { (SQ <"\n"> <"\trm -rf sm1 &&\n"> <"\tgit diff-tree -p --no-commit-id --submodule=log HEAD >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm1 $smhead1..$smhead2:\n"> <"\t > Add foo4 ($added foo4)\n"> <"\t > Add foo3 ($added foo3)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"submodule not initialized in new clone">)} { (SQ <"\n"> <"\tgit clone . sm3 &&\n"> <"\tgit -C sm3 diff-tree -p --no-commit-id --submodule=log HEAD >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm1 $smhead1...$smhead2 (not initialized)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup submodule moved">)} { (SQ <"\n"> <"\tgit submodule update --checkout sm1 &&\n"> <"\tgit mv sm1 sm4 &&\n"> <"\tcommit_file sm4 &&\n"> <"\tgit diff-tree -p --no-commit-id --submodule=log HEAD >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm4 0000000...$smhead2 (new submodule)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"submodule moved then removed">)} { (SQ <"\n"> <"\tsmhead3=$(add_file sm4 foo6 foo7) &&\n"> <"\tcommit_file sm4 &&\n"> <"\trm -rf sm4 &&\n"> <"\tgit diff-tree -p --no-commit-id --submodule=log HEAD >actual &&\n"> <"\tcat >expected <<-EOF &&\n"> <"\tSubmodule sm4 $smhead2..$smhead3:\n"> <"\t > Add foo7 ($added foo7)\n"> <"\t > Add foo6 ($added foo6)\n"> <"\tEOF\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_done)}) ] )