(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 <'read-tree -u --reset'>)}
        )
      ]
      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-read-tree.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <setup>)}
        {
          (SQ <'\n'> <'\tgit init &&\n'> <'\tmkdir df &&\n'> <'\techo content >df/file &&\n'> 
            <'\tgit add df/file &&\n'> <'\tgit commit -m one &&\n'> <'\tgit ls-files >expect &&\n'> <'\trm -rf df &&\n'> 
            <'\techo content >df &&\n'> <'\tgit add df &&\n'> <'\techo content >new &&\n'> <'\tgit add new &&\n'> <'\tgit commit -m two\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'reset should work'>)}
        {
          (SQ <'\n'> <'\tread_tree_u_must_succeed -u --reset HEAD^ &&\n'> 
            <'\tgit ls-files >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 <'reset should remove remnants from a failed merge'>)}
        {
          (SQ <'\n'> <'\tread_tree_u_must_succeed --reset -u HEAD &&\n'> 
            <'\tgit ls-files -s >expect &&\n'> <'\tsha1=$(git rev-parse :new) &&\n'> <'\t(\n'> <'\t\techo "100644 $sha1 1\told"\n'> 
            <'\t\techo "100644 $sha1 3\told"\n'> <'\t) | git update-index --index-info &&\n'> <'\t>old &&\n'> <'\tgit ls-files -s &&\n'> 
            <'\tread_tree_u_must_succeed --reset -u HEAD &&\n'> <'\tgit ls-files -s >actual &&\n'> <'\t! test -f old\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'two-way reset should remove remnants too'>)}
        {
          (SQ <'\n'> <'\tread_tree_u_must_succeed --reset -u HEAD &&\n'> 
            <'\tgit ls-files -s >expect &&\n'> <'\tsha1=$(git rev-parse :new) &&\n'> <'\t(\n'> <'\t\techo "100644 $sha1 1\told"\n'> 
            <'\t\techo "100644 $sha1 3\told"\n'> <'\t) | git update-index --index-info &&\n'> <'\t>old &&\n'> <'\tgit ls-files -s &&\n'> 
            <'\tread_tree_u_must_succeed --reset -u HEAD HEAD &&\n'> <'\tgit ls-files -s >actual &&\n'> <'\t! test -f old\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'Porcelain reset should remove remnants too'>)}
        {
          (SQ <'\n'> <'\tread_tree_u_must_succeed --reset -u HEAD &&\n'> 
            <'\tgit ls-files -s >expect &&\n'> <'\tsha1=$(git rev-parse :new) &&\n'> <'\t(\n'> <'\t\techo "100644 $sha1 1\told"\n'> 
            <'\t\techo "100644 $sha1 3\told"\n'> <'\t) | git update-index --index-info &&\n'> <'\t>old &&\n'> <'\tgit ls-files -s &&\n'> 
            <'\tgit reset --hard &&\n'> <'\tgit ls-files -s >actual &&\n'> <'\t! test -f old\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'Porcelain checkout -f should remove remnants too'>)}
        {
          (SQ <'\n'> <'\tread_tree_u_must_succeed --reset -u HEAD &&\n'> 
            <'\tgit ls-files -s >expect &&\n'> <'\tsha1=$(git rev-parse :new) &&\n'> <'\t(\n'> <'\t\techo "100644 $sha1 1\told"\n'> 
            <'\t\techo "100644 $sha1 3\told"\n'> <'\t) | git update-index --index-info &&\n'> <'\t>old &&\n'> <'\tgit ls-files -s &&\n'> 
            <'\tgit checkout -f &&\n'> <'\tgit ls-files -s >actual &&\n'> <'\t! test -f old\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'Porcelain checkout -f HEAD should remove remnants too'>)}
        {
          (SQ <'\n'> <'\tread_tree_u_must_succeed --reset -u HEAD &&\n'> 
            <'\tgit ls-files -s >expect &&\n'> <'\tsha1=$(git rev-parse :new) &&\n'> <'\t(\n'> <'\t\techo "100644 $sha1 1\told"\n'> 
            <'\t\techo "100644 $sha1 3\told"\n'> <'\t) | git update-index --index-info &&\n'> <'\t>old &&\n'> <'\tgit ls-files -s &&\n'> 
            <'\tgit checkout -f HEAD &&\n'> <'\tgit ls-files -s >actual &&\n'> <'\t! test -f old\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)