(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_description spids:[21])
          op: Equal
          rhs: {(SQ <'skip-worktree bit test'>)}
          spids: [21]
        )
      ]
      spids: [21]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(sane_unset)} {(GIT_TEST_SPLIT_INDEX)})
    (C {(test_set_index_version)} {(3)})
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect.full)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 55
          stdin_parts: [('H 1\n') ('H 2\n') ('H sub/1\n') ('H sub/2\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect.skip)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 70
          stdin_parts: [('S 1\n') ('H 2\n') ('S sub/1\n') ('H sub/2\n')]
        )
      ]
    )
    (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)})
  ]
)