(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'sparse checkout scope tests'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<test_expect_success>} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'\techo "initial" >a &&\n'> <'\techo "initial" >b &&\n'> 
          <'\techo "initial" >c &&\n'> <'\tgit add a b c &&\n'> <'\tgit commit -m "initial commit"\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'create feature branch'>)} 
      {
        (SQ <'\n'> <'\tgit checkout -b feature &&\n'> <'\techo "modified" >b &&\n'> 
          <'\techo "modified" >c &&\n'> <'\tgit add b c &&\n'> <'\tgit commit -m "modification"\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'perform sparse checkout of master'>)} 
      {
        (SQ <'\n'> <'\tgit config --local --bool core.sparsecheckout true &&\n'> 
          <'\techo "!/*" >.git/info/sparse-checkout &&\n'> <'\techo "/a" >>.git/info/sparse-checkout &&\n'> <'\techo "/c" >>.git/info/sparse-checkout &&\n'> 
          <'\tgit checkout master &&\n'> <'\ttest_path_is_file a &&\n'> <'\ttest_path_is_missing b &&\n'> <'\ttest_path_is_file c\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'merge feature branch into sparse checkout of master'>)} 
      {
        (SQ <'\n'> <'\tgit merge feature &&\n'> <'\ttest_path_is_file a &&\n'> 
          <'\ttest_path_is_missing b &&\n'> <'\ttest_path_is_file c &&\n'> <'\ttest "$(cat c)" = "modified"\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'return to full checkout of master'>)} 
      {
        (SQ <'\n'> <'\tgit checkout feature &&\n'> <'\techo "/*" >.git/info/sparse-checkout &&\n'> 
          <'\tgit checkout master &&\n'> <'\ttest_path_is_file a &&\n'> <'\ttest_path_is_file b &&\n'> <'\ttest_path_is_file c &&\n'> 
          <'\ttest "$(cat b)" = "modified"\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)