(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: 'Test shallow cloning of repos with submodules' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pwd) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:16) command_list: (command.CommandList children:[(C {(pwd)})]) ) } spids: [15] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:24))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit checkout -b master &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\ttest_commit commit1 &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\ttest_commit commit2 &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\t(\n' span_id:33) (Token id:Id.Lit_Chars val:'\t\tcd sub &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\t\ttest_commit subcommit1 &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\ttest_commit subcommit2 &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\t\ttest_commit subcommit3\n' span_id:38) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgit submodule add "file://$pwd/sub" sub &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit commit -m "add submodule"\n' span_id:41) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'nonshallow clone implies nonshallow submodule' span_id:48))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 53 ) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules "file://$pwd/." super_clone &&\n' span_id: 54 ) (Token id:Id.Lit_Chars val:'\tgit -C super_clone log --oneline >lines &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\ttest_line_count = 3 lines &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\tgit -C super_clone/sub log --oneline >lines &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\ttest_line_count = 3 lines\n' span_id:58) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'shallow clone with shallow submodule' span_id:65))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 70 ) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules --depth 2 --shallow-submodules "file://$pwd/." super_clone &&\n' span_id: 71 ) (Token id:Id.Lit_Chars val:'\tgit -C super_clone log --oneline >lines &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\ttest_line_count = 2 lines &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit -C super_clone/sub log --oneline >lines &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 lines\n' span_id:75) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'shallow clone does not imply shallow submodule' span_id:82))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 87 ) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules --depth 2 "file://$pwd/." super_clone &&\n' span_id: 88 ) (Token id:Id.Lit_Chars val:'\tgit -C super_clone log --oneline >lines &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\ttest_line_count = 2 lines &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit -C super_clone/sub log --oneline >lines &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\ttest_line_count = 3 lines\n' span_id:92) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'shallow clone with non shallow submodule' span_id:99))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:103) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 104 ) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules --depth 2 --no-shallow-submodules "file://$pwd/." super_clone &&\n' span_id: 105 ) (Token id:Id.Lit_Chars val:'\tgit -C super_clone log --oneline >lines &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\ttest_line_count = 2 lines &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit -C super_clone/sub log --oneline >lines &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\ttest_line_count = 3 lines\n' span_id:109) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'non shallow clone with shallow submodule' span_id:116))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:120) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 121 ) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules --no-local --shallow-submodules "file://$pwd/." super_clone &&\n' span_id: 122 ) (Token id:Id.Lit_Chars val:'\tgit -C super_clone log --oneline >lines &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\ttest_line_count = 3 lines &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\tgit -C super_clone/sub log --oneline >lines &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 lines\n' span_id:126) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clone follows shallow recommendation' span_id:133))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:137) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 138 ) (Token id:Id.Lit_Chars val:'\tgit config -f .gitmodules submodule.sub.shallow true &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\tgit add .gitmodules &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\tgit commit -m "recommed shallow for sub" &&\n' span_id:141) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules --no-local "file://$pwd/." super_clone &&\n' span_id: 142 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:143) (Token id:Id.Lit_Chars val:'\t\tcd super_clone &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\t\tgit log --oneline >lines &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 4 lines\n' span_id:146) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\t(\n' span_id:148) (Token id:Id.Lit_Chars val:'\t\tcd super_clone/sub &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\t\tgit log --oneline >lines &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 1 lines\n' span_id:151) (Token id:Id.Lit_Chars val:'\t)\n' span_id:152) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'get unshallow recommended shallow submodule' span_id:159))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:163) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 164 ) (Token id:Id.Lit_Chars val:'\tgit clone --no-local "file://$pwd/." super_clone &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\t(\n' span_id:166) (Token id:Id.Lit_Chars val:'\t\tcd super_clone &&\n' span_id:167) (Token id: Id.Lit_Chars val: '\t\tgit submodule update --init --no-recommend-shallow &&\n' span_id: 168 ) (Token id:Id.Lit_Chars val:'\t\tgit log --oneline >lines &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 4 lines\n' span_id:170) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\t(\n' span_id:172) (Token id:Id.Lit_Chars val:'\t\tcd super_clone/sub &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\t\tgit log --oneline >lines &&\n' span_id:174) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 3 lines\n' span_id:175) (Token id:Id.Lit_Chars val:'\t)\n' span_id:176) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clone follows non shallow recommendation' span_id:183))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:187) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf super_clone" &&\n' span_id: 188 ) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules submodule.sub.shallow false &&\n' span_id: 189 ) (Token id:Id.Lit_Chars val:'\tgit add .gitmodules &&\n' span_id:190) (Token id: Id.Lit_Chars val: '\tgit commit -m "recommed non shallow for sub" &&\n' span_id: 191 ) (Token id: Id.Lit_Chars val: '\tgit clone --recurse-submodules --no-local "file://$pwd/." super_clone &&\n' span_id: 192 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:193) (Token id:Id.Lit_Chars val:'\t\tcd super_clone &&\n' span_id:194) (Token id:Id.Lit_Chars val:'\t\tgit log --oneline >lines &&\n' span_id:195) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 5 lines\n' span_id:196) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:197) (Token id:Id.Lit_Chars val:'\t(\n' span_id:198) (Token id:Id.Lit_Chars val:'\t\tcd super_clone/sub &&\n' span_id:199) (Token id:Id.Lit_Chars val:'\t\tgit log --oneline >lines &&\n' span_id:200) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 3 lines\n' span_id:201) (Token id:Id.Lit_Chars val:'\t)\n' span_id:202) ) } ) (C {(test_done)}) ] )