(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 <'ext::cmd remote "connect" helper'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<setup>}
        {
          (SQ <'\n'> <'\ttest_tick &&\n'> <'\tgit commit --allow-empty -m initial &&\n'> 
            <'\ttest_tick &&\n'> <'\tgit commit --allow-empty -m second &&\n'> <'\ttest_tick &&\n'> 
            <'\tgit commit --allow-empty -m third &&\n'> <'\ttest_tick &&\n'> <'\tgit tag -a -m "tip three" three &&\n'> <'\n'> <'\ttest_tick &&\n'> 
            <'\tgit commit --allow-empty -m fourth\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<clone>}
        {
          (SQ <'\n'> <'\tcmd=$(echo "echo >&2 ext::sh invoked && %S .." | sed -e "s/ /% /g") &&\n'> 
            <'\tgit clone "ext::sh -c %S% ." dst &&\n'> <'\tgit for-each-ref refs/heads/ refs/tags/ >expect &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config remote.origin.url "ext::sh -c $cmd" &&\n'> <'\t\tgit for-each-ref refs/heads/ refs/tags/\n'> <'\t) >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update following tag'>)}
        {
          (SQ <'\n'> <'\ttest_tick &&\n'> <'\tgit commit --allow-empty -m fifth &&\n'> 
            <'\ttest_tick &&\n'> <'\tgit tag -a -m "tip five" five &&\n'> <'\tgit for-each-ref refs/heads/ refs/tags/ >expect &&\n'> 
            <'\t(\n'> <'\t\tcd dst &&\n'> <'\t\tgit pull &&\n'> <'\t\tgit for-each-ref refs/heads/ refs/tags/ >../actual\n'> 
            <'\t) &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update backfilled tag'>)}
        {
          (SQ <'\n'> <'\ttest_tick &&\n'> <'\tgit commit --allow-empty -m sixth &&\n'> 
            <'\ttest_tick &&\n'> <'\tgit tag -a -m "tip two" two three^1 &&\n'> 
            <'\tgit for-each-ref refs/heads/ refs/tags/ >expect &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> <'\t\tgit pull &&\n'> 
            <'\t\tgit for-each-ref refs/heads/ refs/tags/ >../actual\n'> <'\t) &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update backfilled tag without primary transfer'>)}
        {
          (SQ <'\n'> <'\ttest_tick &&\n'> <'\tgit tag -a -m "tip one " one two^1 &&\n'> 
            <'\tgit for-each-ref refs/heads/ refs/tags/ >expect &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> <'\t\tgit pull &&\n'> 
            <'\t\tgit for-each-ref refs/heads/ refs/tags/ >../actual\n'> <'\t) &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set up fake git-daemon'>)}
        {
          (SQ <'\n'> <'\tmkdir remote &&\n'> <'\tgit init --bare remote/one.git &&\n'> 
            <'\tmkdir remote/host &&\n'> <'\tgit init --bare remote/host/two.git &&\n'> <'\twrite_script fake-daemon <<-\\EOF &&\n'> 
            <'\tgit daemon --inetd \\\n'> <'\t\t--informative-errors \\\n'> <'\t\t--export-all \\\n'> 
            <'\t\t--base-path="$TRASH_DIRECTORY/remote" \\\n'> <'\t\t--interpolated-path="$TRASH_DIRECTORY/remote/%H%D" \\\n'> <'\t\t"$TRASH_DIRECTORY/remote"\n'> 
            <'\tEOF\n'> <'\texport TRASH_DIRECTORY &&\n'> <'\tPATH=$TRASH_DIRECTORY:$PATH\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ext command can connect to git daemon (no vhost)'>)}
        {(SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit clone "ext::fake-daemon %G/one.git" dst\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ext command can connect to git daemon (vhost)'>)}
        {(SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit clone "ext::fake-daemon %G/two.git %Vhost" dst\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)