(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'fetch/clone from a shallow clone over http'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY)) <'/lib-httpd.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <start_httpd>
      more_env: []
      words: [{<start_httpd>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <commit>
      name: commit
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<tracked>})]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<add>} {<tracked>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<commit>} {<-m>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup shallow clone'>)}
        {
          (SQ <'\n'> <'\tcommit 1 &&\n'> <'\tcommit 2 &&\n'> <'\tcommit 3 &&\n'> <'\tcommit 4 &&\n'> 
            <'\tcommit 5 &&\n'> <'\tcommit 6 &&\n'> <'\tcommit 7 &&\n'> <'\tgit clone --no-local --depth=5 .git shallow &&\n'> 
            <'\tgit config --global transfer.fsckObjects true\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'clone http repository'>)}
        {
          (SQ <'\n'> 
            <'\tgit clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n'> <'\tgit clone $HTTPD_URL/smart/repo.git clone &&\n'> <'\t(\n'> <'\tcd clone &&\n'> <'\tgit fsck &&\n'> 
            <'\tgit log --format=%s origin/master >actual &&\n'> <'\tcat <<EOF >expect &&\n'> <'7\n'> <'6\n'> <'5\n'> <'4\n'> <'3\n'> <'EOF\n'> 
            <'\ttest_cmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'no shallow lines after receiving ACK ready'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd shallow &&\n'> <'\t\ttest_tick &&\n'> 
            <'\t\tfor i in $(test_seq 15)\n'> <'\t\tdo\n'> <'\t\t\tgit checkout --orphan unrelated$i &&\n'> <'\t\t\ttest_commit unrelated$i &&\n'> 
            <'\t\t\tgit push -q "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \\\n'> <'\t\t\t\trefs/heads/unrelated$i:refs/heads/unrelated$i &&\n'> 
            <'\t\t\tgit push -q ../clone/.git \\\n'> <'\t\t\t\trefs/heads/unrelated$i:refs/heads/unrelated$i ||\n'> <'\t\t\texit 1\n'> <'\t\tdone &&\n'> 
            <'\t\tgit checkout master &&\n'> <'\t\ttest_commit new &&\n'> <'\t\tgit push  "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" master\n'> 
            <'\t) &&\n'> <'\t(\n'> <'\t\tcd clone &&\n'> <'\t\tgit checkout --orphan newnew &&\n'> 
            <'\t\ttest_commit new-too &&\n'> <'\t\tGIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" git fetch --depth=2 &&\n'> 
            <'\t\tgrep "fetch-pack< ACK .* ready" ../trace &&\n'> <'\t\t! grep "fetch-pack> done" ../trace\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'clone shallow since ...'>)}
        {
          (SQ <'\n'> <'\ttest_create_repo shallow-since &&\n'> <'\t(\n'> <'\tcd shallow-since &&\n'> 
            <'\tGIT_COMMITTER_DATE="100000000 +0700" git commit --allow-empty -m one &&\n'> <'\tGIT_COMMITTER_DATE="200000000 +0700" git commit --allow-empty -m two &&\n'> 
            <'\tGIT_COMMITTER_DATE="300000000 +0700" git commit --allow-empty -m three &&\n'> <'\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-since.git" &&\n'> 
            <
'\tgit clone --shallow-since "300000000 +0700" $HTTPD_URL/smart/shallow-since.git ../shallow11 &&\n'
            > <'\tgit -C ../shallow11 log --pretty=tformat:%s HEAD >actual &&\n'> <'\techo three >expected &&\n'> 
            <'\ttest_cmp expected actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch shallow since ...'>)}
        {
          (SQ <'\n'> <'\tgit -C shallow11 fetch --shallow-since "200000000 +0700" origin &&\n'> 
            <'\tgit -C shallow11 log --pretty=tformat:%s origin/master >actual &&\n'> <'\tcat >expected <<-\\EOF &&\n'> <'\tthree\n'> <'\ttwo\n'> <'\tEOF\n'> <'\ttest_cmp expected actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'shallow clone exclude tag two'>)}
        {
          (SQ <'\n'> <'\ttest_create_repo shallow-exclude &&\n'> <'\t(\n'> <'\tcd shallow-exclude &&\n'> 
            <'\ttest_commit one &&\n'> <'\ttest_commit two &&\n'> <'\ttest_commit three &&\n'> 
            <'\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-exclude.git" &&\n'> <'\tgit clone --shallow-exclude two $HTTPD_URL/smart/shallow-exclude.git ../shallow12 &&\n'> 
            <'\tgit -C ../shallow12 log --pretty=tformat:%s HEAD >actual &&\n'> <'\techo three >expected &&\n'> <'\ttest_cmp expected actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch exclude tag one'>)}
        {
          (SQ <'\n'> <'\tgit -C shallow12 fetch --shallow-exclude one origin &&\n'> 
            <'\tgit -C shallow12 log --pretty=tformat:%s origin/master >actual &&\n'> <'\ttest_write_lines three two >expected &&\n'> <'\ttest_cmp expected actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetching deepen'>)}
        {
          (SQ <'\n'> <'\ttest_create_repo shallow-deepen &&\n'> <'\t(\n'> <'\tcd shallow-deepen &&\n'> 
            <'\ttest_commit one &&\n'> <'\ttest_commit two &&\n'> <'\ttest_commit three &&\n'> 
            <'\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-deepen.git" &&\n'> <'\tgit clone --depth 1 $HTTPD_URL/smart/shallow-deepen.git deepen &&\n'> 
            <'\tmv "$HTTPD_DOCUMENT_ROOT_PATH/shallow-deepen.git" .git &&\n'> <'\ttest_commit four &&\n'> <'\tgit -C deepen log --pretty=tformat:%s master >actual &&\n'> 
            <'\techo three >expected &&\n'> <'\ttest_cmp expected actual &&\n'> <'\tmv .git "$HTTPD_DOCUMENT_ROOT_PATH/shallow-deepen.git" &&\n'> 
            <'\tgit -C deepen fetch --deepen=1 &&\n'> <'\tgit -C deepen log --pretty=tformat:%s origin/master >actual &&\n'> 
            <'\tcat >expected <<-\\EOF &&\n'> <'\tfour\n'> <'\tthree\n'> <'\ttwo\n'> <'\tEOF\n'> <'\ttest_cmp expected actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <stop_httpd>
      more_env: []
      words: [{<stop_httpd>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)