(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'skip-worktree bit test'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<sane_unset>} {<GIT_TEST_SPLIT_INDEX>})
    (C {<test_set_index_version>} {<3>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect.full>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 47
              stdin_parts: [<'H 1\n'> <'H 2\n'> <'H sub/1\n'> <'H sub/2\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect.skip>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 62
              stdin_parts: [<'S 1\n'> <'H 2\n'> <'S sub/1\n'> <'H sub/2\n'>]
            )
        )
      ]
      do_fork: T
    )
    (C {<test_expect_success>} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'\tmkdir sub &&\n'> <'\ttouch ./1 ./2 sub/1 sub/2 &&\n'> 
          <'\tgit add 1 2 sub/1 sub/2 &&\n'> <'\tgit ls-files -t | test_cmp expect.full -\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'index is at version 2'>)} 
      {(SQ <'\n'> <'\ttest "$(test-index-version < .git/index)" = 2\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'update-index --skip-worktree'>)} 
      {
        (SQ <'\n'> <'\tgit update-index --skip-worktree 1 sub/1 &&\n'> 
          <'\tgit ls-files -t | test_cmp expect.skip -\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'index is at version 3 after having some skip-worktree entries'>)} 
      {(SQ <'\n'> <'\ttest "$(test-index-version < .git/index)" = 3\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'ls-files -t'>)} 
      {(SQ <'\n'> <'\tgit ls-files -t | test_cmp expect.skip -\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'update-index --no-skip-worktree'>)} 
      {
        (SQ <'\n'> <'\tgit update-index --no-skip-worktree 1 sub/1 &&\n'> 
          <'\tgit ls-files -t | test_cmp expect.full -\n'>
        )
      }
    )
    (C {<test_expect_success>} 
      {(SQ <'index version is back to 2 when there is no skip-worktree entry'>)} {(SQ <'\n'> <'\ttest "$(test-index-version < .git/index)" = 2\n'>)}
    )
    (C {<test_done>})
  ]
)