(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'checkout can handle submodules' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-submodule-update.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:25))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) (Token id:Id.Lit_Chars val:'\tmkdir submodule &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\t(cd submodule &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\t git init &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\t test_commit first) &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\tgit add submodule &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit commit -m superproject &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t(cd submodule &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\t test_commit second) &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit add submodule &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit commit -m updated.superproject\n' span_id:41) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"reset <submodule>" updates the index' span_id:48))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\tgit diff-files --quiet &&\n' span_id:54) (Token id: Id.Lit_Chars val: '\tgit diff-index --quiet --cached HEAD &&\n' span_id: 55 ) (Token id:Id.Lit_Chars val:'\tgit reset HEAD^ submodule &&\n' span_id:56) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff-files --quiet &&\n' span_id: 57 ) (Token id:Id.Lit_Chars val:'\tgit reset submodule &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\tgit diff-files --quiet\n' span_id:59) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"checkout <submodule>" updates the index only' span_id:66))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:70) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit diff-files --quiet &&\n' span_id:72) (Token id: Id.Lit_Chars val: '\tgit diff-index --quiet --cached HEAD &&\n' span_id: 73 ) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD^ submodule &&\n' span_id:74) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff-files --quiet &&\n' span_id: 75 ) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD submodule &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tgit diff-files --quiet\n' span_id:77) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '"checkout <submodule>" honors diff.ignoreSubmodules' span_id: 84 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) (Token id: Id.Lit_Chars val: '\tgit config diff.ignoreSubmodules dirty &&\n' span_id: 89 ) (Token id:Id.Lit_Chars val:'\techo x> submodule/untracked &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD >actual 2>&1 &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\t! test -s actual\n' span_id:92) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '"checkout <submodule>" honors submodule.*.ignore from .gitmodules' span_id: 99 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:103) (Token id: Id.Lit_Chars val: '\tgit config diff.ignoreSubmodules none &&\n' span_id: 104 ) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules submodule.submodule.path submodule &&\n' span_id: 105 ) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules submodule.submodule.ignore untracked &&\n' span_id: 106 ) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD >actual 2>&1 &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\t! test -s actual\n' span_id:108) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '"checkout <submodule>" honors submodule.*.ignore from .git/config' span_id: 115 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules submodule.submodule.ignore none &&\n' span_id: 120 ) (Token id:Id.Lit_Chars val:'\tgit config submodule.submodule.path submodule &&\n' span_id:121) (Token id: Id.Lit_Chars val: '\tgit config submodule.submodule.ignore all &&\n' span_id: 122 ) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD >actual 2>&1 &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\t! test -s actual\n' span_id:124) ) } ) (C {(test_submodule_switch)} {(DQ ('git checkout'))}) (C {(test_submodule_forced_switch)} {(DQ ('git checkout -f'))}) (C {(test_done)}) ] )