(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:'push from/to 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 span_id:68))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id: Id.Lit_Chars val: '\tgit config --global transfer.fsckObjects true &&\n' span_id: 73 ) (Token id:Id.Lit_Chars val:'\tcommit 1 &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\tcommit 2 &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tcommit 3 &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tcommit 4 &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit clone . full &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\t(\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit init full-abc &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\tcd full-abc &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tcommit a &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\tcommit b &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tcommit c\n' span_id:84) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tgit clone --no-local --depth=2 .git shallow &&\n' span_id:86) (Token id: Id.Lit_Chars val: '\tgit --git-dir=shallow/.git log --format=%s >actual &&\n' span_id: 87 ) (Token id:Id.Lit_Chars val:'\tcat <<EOF >expect &&\n' span_id:88) (Token id:Id.Lit_Chars val:'4\n' span_id:89) (Token id:Id.Lit_Chars val:'3\n' span_id:90) (Token id:Id.Lit_Chars val:'EOF\n' span_id:91) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\tgit clone --no-local --depth=2 full-abc/.git shallow2 &&\n' span_id:93) (Token id: Id.Lit_Chars val: '\tgit --git-dir=shallow2/.git log --format=%s >actual &&\n' span_id: 94 ) (Token id:Id.Lit_Chars val:'\tcat <<EOF >expect &&\n' span_id:95) (Token id:Id.Lit_Chars val:'c\n' span_id:96) (Token id:Id.Lit_Chars val:'b\n' span_id:97) (Token id:Id.Lit_Chars val:'EOF\n' span_id:98) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:99) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'push to shallow repo via http' span_id:106))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:110) (Token id: Id.Lit_Chars val: '\tgit clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 111 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:112) (Token id: Id.Lit_Chars val: '\tcd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 113 ) (Token id:Id.Lit_Chars val:'\tgit config http.receivepack true\n' span_id:114) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\t(\n' span_id:116) (Token id:Id.Lit_Chars val:'\tcd full &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\tcommit 9 &&\n' span_id:118) (Token id: Id.Lit_Chars val: '\tgit push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master\n' span_id: 119 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\t(\n' span_id:121) (Token id: Id.Lit_Chars val: '\tcd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 122 ) (Token id:Id.Lit_Chars val:'\tgit fsck &&\n' span_id:123) (Token id: Id.Lit_Chars val: '\tgit log --format=%s top/master >actual &&\n' span_id: 124 ) (Token id:Id.Lit_Chars val:'\tcat <<EOF >expect &&\n' span_id:125) (Token id:Id.Lit_Chars val:'9\n' span_id:126) (Token id:Id.Lit_Chars val:'4\n' span_id:127) (Token id:Id.Lit_Chars val:'3\n' span_id:128) (Token id:Id.Lit_Chars val:'EOF\n' span_id:129) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:130) (Token id:Id.Lit_Chars val:'\t)\n' span_id:131) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'push from shallow repo via http' span_id:138))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:142) (Token id: Id.Lit_Chars val: '\tmv "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" shallow-upstream.git &&\n' span_id: 143 ) (Token id: Id.Lit_Chars val: '\tgit clone --bare --no-local full "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 144 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:145) (Token id: Id.Lit_Chars val: '\tcd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 146 ) (Token id:Id.Lit_Chars val:'\tgit config http.receivepack true\n' span_id:147) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\tcommit 10 &&\n' span_id:149) (Token id: Id.Lit_Chars val: '\tgit push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master &&\n' span_id: 150 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:151) (Token id: Id.Lit_Chars val: '\tcd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n' span_id: 152 ) (Token id:Id.Lit_Chars val:'\tgit fsck &&\n' span_id:153) (Token id: Id.Lit_Chars val: '\tgit log --format=%s top/master >actual &&\n' span_id: 154 ) (Token id:Id.Lit_Chars val:'\tcat <<EOF >expect &&\n' span_id:155) (Token id:Id.Lit_Chars val:'10\n' span_id:156) (Token id:Id.Lit_Chars val:'4\n' span_id:157) (Token id:Id.Lit_Chars val:'3\n' span_id:158) (Token id:Id.Lit_Chars val:'2\n' span_id:159) (Token id:Id.Lit_Chars val:'1\n' span_id:160) (Token id:Id.Lit_Chars val:'EOF\n' span_id:161) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:162) (Token id:Id.Lit_Chars val:'\t)\n' span_id:163) ) } ) (C {(stop_httpd)}) (C {(test_done)}) ] )