(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:'fetch/clone from a shallow clone over http' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-httpd.sh)}) (C {(start_httpd)}) (command.ShFunction name: commit body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:37) fd: -1 arg_word: {(tracked)} ) ] ) (C {(git)} {(add)} {(tracked)}) (C {(git)} {(commit)} {(-m)} {(DQ ($ Id.VSub_Number '$1'))}) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup shallow clone' span_id:68))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id:Id.Lit_Chars val:'\tcommit 1 &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tcommit 2 &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\tcommit 3 &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tcommit 4 &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tcommit 5 &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tcommit 6 &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\tcommit 7 &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit clone --no-local --depth=5 .git shallow &&\n' span_id:80) (Token id: Id.Lit_Chars val: '\tgit config --global transfer.fsckObjects true\n' span_id: 81 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clone http repository' span_id:88))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:92) (Token id: Id.Lit_Chars val: '\tgit clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 93 ) (Token id:Id.Lit_Chars val:'\tgit clone $HTTPD_URL/smart/repo.git clone &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\t(\n' span_id:95) (Token id:Id.Lit_Chars val:'\tcd clone &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\tgit fsck &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\tgit log --format=%s origin/master >actual &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\tcat <<EOF >expect &&\n' span_id:99) (Token id:Id.Lit_Chars val:'7\n' span_id:100) (Token id:Id.Lit_Chars val:'6\n' span_id:101) (Token id:Id.Lit_Chars val:'5\n' span_id:102) (Token id:Id.Lit_Chars val:'4\n' span_id:103) (Token id:Id.Lit_Chars val:'3\n' span_id:104) (Token id:Id.Lit_Chars val:'EOF\n' span_id:105) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:106) (Token id:Id.Lit_Chars val:'\t)\n' span_id:107) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'no shallow lines after receiving ACK ready' span_id:123))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) (Token id:Id.Lit_Chars val:'\t(\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\tcd shallow &&\n' span_id:129) (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\t\tfor i in $(test_seq 15)\n' span_id:131) (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:132) (Token id:Id.Lit_Chars val:'\t\t\tgit checkout --orphan unrelated$i &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\t\t\ttest_commit unrelated$i &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\t\tgit push -q "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \\\n' span_id:135) (Token id: Id.Lit_Chars val: '\t\t\t\trefs/heads/unrelated$i:refs/heads/unrelated$i &&\n' span_id: 136 ) (Token id:Id.Lit_Chars val:'\t\t\tgit push -q ../clone/.git \\\n' span_id:137) (Token id: Id.Lit_Chars val: '\t\t\t\trefs/heads/unrelated$i:refs/heads/unrelated$i ||\n' span_id: 138 ) (Token id:Id.Lit_Chars val:'\t\t\texit 1\n' span_id:139) (Token id:Id.Lit_Chars val:'\t\tdone &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\t\tgit checkout master &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\t\ttest_commit new &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\t\tgit push "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" master\n' span_id:143) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\t(\n' span_id:145) (Token id:Id.Lit_Chars val:'\t\tcd clone &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\t\tgit checkout --orphan newnew &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\t\ttest_commit new-too &&\n' span_id:148) (Token id: Id.Lit_Chars val: '\t\tGIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" git fetch --depth=2 &&\n' span_id: 149 ) (Token id:Id.Lit_Chars val:'\t\tgrep "fetch-pack< ACK .* ready" ../trace &&\n' span_id:150) (Token id: Id.Lit_Chars val: '\t\t! grep "fetch-pack> done" ../trace\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:'clone shallow since ...' span_id:159))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:163) (Token id:Id.Lit_Chars val:'\ttest_create_repo shallow-since &&\n' span_id:164) (Token id:Id.Lit_Chars val:'\t(\n' span_id:165) (Token id:Id.Lit_Chars val:'\tcd shallow-since &&\n' span_id:166) (Token id: Id.Lit_Chars val: '\tGIT_COMMITTER_DATE="100000000 +0700" git commit --allow-empty -m one &&\n' span_id: 167 ) (Token id: Id.Lit_Chars val: '\tGIT_COMMITTER_DATE="200000000 +0700" git commit --allow-empty -m two &&\n' span_id: 168 ) (Token id: Id.Lit_Chars val: '\tGIT_COMMITTER_DATE="300000000 +0700" git commit --allow-empty -m three &&\n' span_id: 169 ) (Token id: Id.Lit_Chars val: '\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-since.git" &&\n' span_id: 170 ) (Token id: Id.Lit_Chars val: '\tgit clone --shallow-since "300000000 +0700" $HTTPD_URL/smart/shallow-since.git ../shallow11 &&\n' span_id: 171 ) (Token id: Id.Lit_Chars val: '\tgit -C ../shallow11 log --pretty=tformat:%s HEAD >actual &&\n' span_id: 172 ) (Token id:Id.Lit_Chars val:'\techo three >expected &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:174) (Token id:Id.Lit_Chars val:'\t)\n' span_id:175) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetch shallow since ...' span_id:182))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:186) (Token id: Id.Lit_Chars val: '\tgit -C shallow11 fetch --shallow-since "200000000 +0700" origin &&\n' span_id: 187 ) (Token id: Id.Lit_Chars val: '\tgit -C shallow11 log --pretty=tformat:%s origin/master >actual &&\n' span_id: 188 ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\tthree\n' span_id:190) (Token id:Id.Lit_Chars val:'\ttwo\n' span_id:191) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:192) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:193) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'shallow clone exclude tag two' span_id:200))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\ttest_create_repo shallow-exclude &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\t(\n' span_id:206) (Token id:Id.Lit_Chars val:'\tcd shallow-exclude &&\n' span_id:207) (Token id:Id.Lit_Chars val:'\ttest_commit one &&\n' span_id:208) (Token id:Id.Lit_Chars val:'\ttest_commit two &&\n' span_id:209) (Token id:Id.Lit_Chars val:'\ttest_commit three &&\n' span_id:210) (Token id: Id.Lit_Chars val: '\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-exclude.git" &&\n' span_id: 211 ) (Token id: Id.Lit_Chars val: '\tgit clone --shallow-exclude two $HTTPD_URL/smart/shallow-exclude.git ../shallow12 &&\n' span_id: 212 ) (Token id: Id.Lit_Chars val: '\tgit -C ../shallow12 log --pretty=tformat:%s HEAD >actual &&\n' span_id: 213 ) (Token id:Id.Lit_Chars val:'\techo three >expected &&\n' span_id:214) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:215) (Token id:Id.Lit_Chars val:'\t)\n' span_id:216) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetch exclude tag one' span_id:223))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:227) (Token id: Id.Lit_Chars val: '\tgit -C shallow12 fetch --shallow-exclude one origin &&\n' span_id: 228 ) (Token id: Id.Lit_Chars val: '\tgit -C shallow12 log --pretty=tformat:%s origin/master >actual &&\n' span_id: 229 ) (Token id:Id.Lit_Chars val:'\ttest_write_lines three two >expected &&\n' span_id:230) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:231) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetching deepen' span_id:238))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:242) (Token id:Id.Lit_Chars val:'\ttest_create_repo shallow-deepen &&\n' span_id:243) (Token id:Id.Lit_Chars val:'\t(\n' span_id:244) (Token id:Id.Lit_Chars val:'\tcd shallow-deepen &&\n' span_id:245) (Token id:Id.Lit_Chars val:'\ttest_commit one &&\n' span_id:246) (Token id:Id.Lit_Chars val:'\ttest_commit two &&\n' span_id:247) (Token id:Id.Lit_Chars val:'\ttest_commit three &&\n' span_id:248) (Token id: Id.Lit_Chars val: '\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-deepen.git" &&\n' span_id: 249 ) (Token id: Id.Lit_Chars val: '\tgit clone --depth 1 $HTTPD_URL/smart/shallow-deepen.git deepen &&\n' span_id: 250 ) (Token id: Id.Lit_Chars val: '\tmv "$HTTPD_DOCUMENT_ROOT_PATH/shallow-deepen.git" .git &&\n' span_id: 251 ) (Token id:Id.Lit_Chars val:'\ttest_commit four &&\n' span_id:252) (Token id: Id.Lit_Chars val: '\tgit -C deepen log --pretty=tformat:%s master >actual &&\n' span_id: 253 ) (Token id:Id.Lit_Chars val:'\techo three >expected &&\n' span_id:254) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:255) (Token id: Id.Lit_Chars val: '\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-deepen.git" &&\n' span_id: 256 ) (Token id:Id.Lit_Chars val:'\tgit -C deepen fetch --deepen=1 &&\n' span_id:257) (Token id: Id.Lit_Chars val: '\tgit -C deepen log --pretty=tformat:%s origin/master >actual &&\n' span_id: 258 ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:259) (Token id:Id.Lit_Chars val:'\tfour\n' span_id:260) (Token id:Id.Lit_Chars val:'\tthree\n' span_id:261) (Token id:Id.Lit_Chars val:'\ttwo\n' span_id:262) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:263) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:264) (Token id:Id.Lit_Chars val:'\t)\n' span_id:265) ) } ) (C {(stop_httpd)}) (C {(test_done)}) ] )