(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: 
            {
              (SQ (Token id:Id.Lit_Chars val:'sparse checkout tests\n' span_id:6) 
                (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id:Id.Lit_Chars val:'* (tag: removed, master) removed\n' span_id:8) 
                (Token id:Id.Lit_Chars val:'| D\tsub/added\n' span_id:9) (Token id:Id.Lit_Chars val:'* (HEAD, tag: top) modified and added\n' span_id:10) 
                (Token id:Id.Lit_Chars val:'| M\tinit.t\n' span_id:11) (Token id:Id.Lit_Chars val:'| A\tsub/added\n' span_id:12) 
                (Token id:Id.Lit_Chars val:'* (tag: init) init\n' span_id:13) (Token id:Id.Lit_Chars val:'  A\tinit.t\n' span_id:14)
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-read-tree.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:33))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-EOF &&\n' span_id:38) 
          (Token
            id: Id.Lit_Chars
            val: '\t100644 77f0ba1734ed79d12881f81b36ee134de6a3327b 0\tinit.t\n'
            span_id: 39
          ) (Token id:Id.Lit_Chars val:'\t100644 $EMPTY_BLOB 0\tsub/added\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\t100644 $EMPTY_BLOB 0\tsub/addedtoo\n' span_id:41) (Token id:Id.Lit_Chars val:'\t100644 $EMPTY_BLOB 0\tsubsub/added\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:43) (Token id:Id.Lit_Chars val:'\tcat >expected.swt <<-\\EOF &&\n' span_id:44) 
          (Token id:Id.Lit_Chars val:'\tH init.t\n' span_id:45) (Token id:Id.Lit_Chars val:'\tH sub/added\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\tH sub/addedtoo\n' span_id:47) (Token id:Id.Lit_Chars val:'\tH subsub/added\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:49) (Token id:Id.Lit_Chars val:'\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\ttest_commit init &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\techo modified >>init.t &&\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub subsub &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\ttouch sub/added sub/addedtoo subsub/added &&\n' span_id:54) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit add init.t sub/added sub/addedtoo subsub/added &&\n'
            span_id: 55
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m "modified and added" &&\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\tgit tag top &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tgit rm sub/added &&\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m removed &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\tgit tag removed &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\tgit checkout top &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\tgit ls-files --stage >result &&\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected result\n' span_id:63)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree without .git/info/sparse-checkout' span_id:70))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) 
          (Token
            id: Id.Lit_Chars
            val: '\tread_tree_u_must_succeed -m -u HEAD &&\n'
            span_id: 75
          ) (Token id:Id.Lit_Chars val:'\tgit ls-files --stage >result &&\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected result &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt result\n' span_id:79)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'read-tree with .git/info/sparse-checkout but disabled'
            span_id: 86
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\techo >.git/info/sparse-checkout &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD &&\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt result &&\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\ttest -f init.t &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\ttest -f sub/added\n' span_id:96)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled'
            span_id: 103
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:107) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config core.sparsecheckout true &&\n'
            span_id: 108
          ) (Token id:Id.Lit_Chars val:'\techo >.git/info/sparse-checkout &&\n' span_id:109) 
          (Token
            id: Id.Lit_Chars
            val: '\tread_tree_u_must_succeed --no-sparse-checkout -m -u HEAD &&\n'
            span_id: 110
          ) (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:111) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt result &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\ttest -f init.t &&\n' span_id:113) 
          (Token id:Id.Lit_Chars val:'\ttest -f sub/added\n' span_id:114)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree with empty .git/info/sparse-checkout' span_id:121))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:125) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config core.sparsecheckout true &&\n'
            span_id: 126
          ) (Token id:Id.Lit_Chars val:'\techo >.git/info/sparse-checkout &&\n' span_id:127) 
          (Token id:Id.Lit_Chars val:'\tread_tree_u_must_fail -m -u HEAD &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\tgit ls-files --stage >result &&\n' span_id:129) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected result &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt result &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\ttest -f init.t &&\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\ttest -f sub/added\n' span_id:134)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'match directories with trailing slash' span_id:141))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:145) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat >expected.swt-noinit <<-\\EOF &&\n'
            span_id: 146
          ) (Token id:Id.Lit_Chars val:'\tS init.t\n' span_id:147) 
          (Token id:Id.Lit_Chars val:'\tH sub/added\n' span_id:148) (Token id:Id.Lit_Chars val:'\tH sub/addedtoo\n' span_id:149) 
          (Token id:Id.Lit_Chars val:'\tS subsub/added\n' span_id:150) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:151) (Token id:Id.Lit_Chars val:'\n' span_id:152) 
          (Token
            id: Id.Lit_Chars
            val: '\techo sub/ > .git/info/sparse-checkout &&\n'
            span_id: 153
          ) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD &&\n' span_id:154) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files -t > result &&\n' span_id:155) (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt-noinit result &&\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f init.t &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\ttest -f sub/added\n' span_id:158)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'match directories without trailing slash' span_id:165))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:169) 
          (Token
            id: Id.Lit_Chars
            val: '\techo sub >.git/info/sparse-checkout &&\n'
            span_id: 170
          ) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD &&\n' span_id:171) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:172) (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt-noinit result &&\n' span_id:173) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f init.t &&\n' span_id:174) (Token id:Id.Lit_Chars val:'\ttest -f sub/added\n' span_id:175)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'match directories with negated patterns' span_id:182))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:186) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat >expected.swt-negation <<\\EOF &&\n'
            span_id: 187
          ) (Token id:Id.Lit_Chars val:'S init.t\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'S sub/added\n' span_id:189) (Token id:Id.Lit_Chars val:'H sub/addedtoo\n' span_id:190) 
          (Token id:Id.Lit_Chars val:'S subsub/added\n' span_id:191) (Token id:Id.Lit_Chars val:'EOF\n' span_id:192) (Token id:Id.Lit_Chars val:'\n' span_id:193) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat >.git/info/sparse-checkout <<\\EOF &&\n'
            span_id: 194
          ) (Token id:Id.Lit_Chars val:'sub\n' span_id:195) (Token id:Id.Lit_Chars val:'!sub/added\n' span_id:196) 
          (Token id:Id.Lit_Chars val:'EOF\n' span_id:197) (Token id:Id.Lit_Chars val:'\tgit read-tree -m -u HEAD &&\n' span_id:198) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:199) (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt-negation result &&\n' span_id:200) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f init.t &&\n' span_id:201) (Token id:Id.Lit_Chars val:'\ttest ! -f sub/added &&\n' span_id:202) 
          (Token id:Id.Lit_Chars val:'\ttest -f sub/addedtoo\n' span_id:203)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'match directories with negated patterns (2)' span_id:210))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:214) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat >expected.swt-negation2 <<\\EOF &&\n'
            span_id: 215
          ) (Token id:Id.Lit_Chars val:'H init.t\n' span_id:216) 
          (Token id:Id.Lit_Chars val:'H sub/added\n' span_id:217) (Token id:Id.Lit_Chars val:'S sub/addedtoo\n' span_id:218) 
          (Token id:Id.Lit_Chars val:'H subsub/added\n' span_id:219) (Token id:Id.Lit_Chars val:'EOF\n' span_id:220) (Token id:Id.Lit_Chars val:'\n' span_id:221) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat >.git/info/sparse-checkout <<\\EOF &&\n'
            span_id: 222
          ) (Token id:Id.Lit_Chars val:'/*\n' span_id:223) (Token id:Id.Lit_Chars val:'!sub\n' span_id:224) 
          (Token id:Id.Lit_Chars val:'sub/added\n' span_id:225) (Token id:Id.Lit_Chars val:'EOF\n' span_id:226) 
          (Token id:Id.Lit_Chars val:'\tgit read-tree -m -u HEAD &&\n' span_id:227) (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:228) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_cmp expected.swt-negation2 result &&\n'
            span_id: 229
          ) (Token id:Id.Lit_Chars val:'\ttest -f init.t &&\n' span_id:230) 
          (Token id:Id.Lit_Chars val:'\ttest -f sub/added &&\n' span_id:231) (Token id:Id.Lit_Chars val:'\ttest ! -f sub/addedtoo\n' span_id:232)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'match directory pattern' span_id:239))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:243) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "s?b" >.git/info/sparse-checkout &&\n'
            span_id: 244
          ) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD &&\n' span_id:245) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:246) (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt-noinit result &&\n' span_id:247) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f init.t &&\n' span_id:248) (Token id:Id.Lit_Chars val:'\ttest -f sub/added\n' span_id:249)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout area changes' span_id:256))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:260) 
          (Token id:Id.Lit_Chars val:'\tcat >expected.swt-nosub <<-\\EOF &&\n' span_id:261) (Token id:Id.Lit_Chars val:'\tH init.t\n' span_id:262) 
          (Token id:Id.Lit_Chars val:'\tS sub/added\n' span_id:263) (Token id:Id.Lit_Chars val:'\tS sub/addedtoo\n' span_id:264) 
          (Token id:Id.Lit_Chars val:'\tS subsub/added\n' span_id:265) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:266) (Token id:Id.Lit_Chars val:'\n' span_id:267) 
          (Token
            id: Id.Lit_Chars
            val: '\techo init.t >.git/info/sparse-checkout &&\n'
            span_id: 268
          ) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD &&\n' span_id:269) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files -t >result &&\n' span_id:270) (Token id:Id.Lit_Chars val:'\ttest_cmp expected.swt-nosub result &&\n' span_id:271) 
          (Token id:Id.Lit_Chars val:'\ttest -f init.t &&\n' span_id:272) (Token id:Id.Lit_Chars val:'\ttest ! -f sub/added\n' span_id:273)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree updates worktree, absent case' span_id:280))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:284) 
          (Token
            id: Id.Lit_Chars
            val: '\techo sub/added >.git/info/sparse-checkout &&\n'
            span_id: 285
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:286) 
          (Token
            id: Id.Lit_Chars
            val: '\tread_tree_u_must_succeed -m -u HEAD^ &&\n'
            span_id: 287
          ) (Token id:Id.Lit_Chars val:'\ttest ! -f init.t\n' span_id:288)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree updates worktree, dirty case' span_id:295))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:299) 
          (Token
            id: Id.Lit_Chars
            val: '\techo sub/added >.git/info/sparse-checkout &&\n'
            span_id: 300
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:301) 
          (Token id:Id.Lit_Chars val:'\techo dirty >init.t &&\n' span_id:302) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD^ &&\n' span_id:303) 
          (Token id:Id.Lit_Chars val:'\tgrep -q dirty init.t &&\n' span_id:304) (Token id:Id.Lit_Chars val:'\trm init.t\n' span_id:305)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree removes worktree, dirty case' span_id:312))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:316) 
          (Token
            id: Id.Lit_Chars
            val: '\techo init.t >.git/info/sparse-checkout &&\n'
            span_id: 317
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:318) 
          (Token id:Id.Lit_Chars val:'\techo dirty >added &&\n' span_id:319) (Token id:Id.Lit_Chars val:'\tread_tree_u_must_succeed -m -u HEAD^ &&\n' span_id:320) 
          (Token id:Id.Lit_Chars val:'\tgrep -q dirty added\n' span_id:321)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree adds to worktree, absent case' span_id:328))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:332) 
          (Token
            id: Id.Lit_Chars
            val: '\techo init.t >.git/info/sparse-checkout &&\n'
            span_id: 333
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f removed &&\n' span_id:334) 
          (Token
            id: Id.Lit_Chars
            val: '\tread_tree_u_must_succeed -u -m HEAD^ &&\n'
            span_id: 335
          ) (Token id:Id.Lit_Chars val:'\ttest ! -f sub/added\n' span_id:336)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree adds to worktree, dirty case' span_id:343))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:347) 
          (Token
            id: Id.Lit_Chars
            val: '\techo init.t >.git/info/sparse-checkout &&\n'
            span_id: 348
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f removed &&\n' span_id:349) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:350) (Token id:Id.Lit_Chars val:'\techo dirty >sub/added &&\n' span_id:351) 
          (Token
            id: Id.Lit_Chars
            val: '\tread_tree_u_must_succeed -u -m HEAD^ &&\n'
            span_id: 352
          ) (Token id:Id.Lit_Chars val:'\tgrep -q dirty sub/added\n' span_id:353)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'index removal and worktree narrowing at the same time'
            span_id: 360
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:364) 
          (Token id:Id.Lit_Chars val:'\t>empty &&\n' span_id:365) (Token id:Id.Lit_Chars val:'\techo init.t >.git/info/sparse-checkout &&\n' span_id:366) 
          (Token
            id: Id.Lit_Chars
            val: '\techo sub/added >>.git/info/sparse-checkout &&\n'
            span_id: 367
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:368) 
          (Token
            id: Id.Lit_Chars
            val: '\techo init.t >.git/info/sparse-checkout &&\n'
            span_id: 369
          ) (Token id:Id.Lit_Chars val:'\tgit checkout removed &&\n' span_id:370) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files sub/added >result &&\n' span_id:371) (Token id:Id.Lit_Chars val:'\ttest ! -f sub/added &&\n' span_id:372) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp empty result\n' span_id:373)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'read-tree --reset removes outside worktree' span_id:380))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:384) 
          (Token id:Id.Lit_Chars val:'\t>empty &&\n' span_id:385) (Token id:Id.Lit_Chars val:'\techo init.t >.git/info/sparse-checkout &&\n' span_id:386) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:387) (Token id:Id.Lit_Chars val:'\tgit reset --hard removed &&\n' span_id:388) 
          (Token id:Id.Lit_Chars val:'\tgit ls-files sub/added >result &&\n' span_id:389) (Token id:Id.Lit_Chars val:'\ttest_cmp empty result\n' span_id:390)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'print errors when failed to update worktree' span_id:397))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:401) 
          (Token
            id: Id.Lit_Chars
            val: '\techo sub >.git/info/sparse-checkout &&\n'
            span_id: 402
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f init &&\n' span_id:403) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:404) (Token id:Id.Lit_Chars val:'\ttouch sub/added sub/addedtoo &&\n' span_id:405) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git checkout top 2>actual &&\n'
            span_id: 406
          ) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EOF &&\n' span_id:407) 
          (Token
            id: Id.Lit_Chars
            val: 
'error: The following untracked working tree files would be overwritten by checkout:\n'
            span_id: 408
          ) (Token id:Id.Lit_Chars val:'\tsub/added\n' span_id:409) 
          (Token id:Id.Lit_Chars val:'\tsub/addedtoo\n' span_id:410) (Token id:Id.Lit_Chars val:'Please move or remove them before you switch branches.\n' span_id:411) 
          (Token id:Id.Lit_Chars val:'Aborting\n' span_id:412) (Token id:Id.Lit_Chars val:'EOF\n' span_id:413) 
          (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expected actual\n' span_id:414)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checkout without --ignore-skip-worktree-bits' span_id:421))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:425) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "*" >.git/info/sparse-checkout &&\n'
            span_id: 426
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:427) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_file init.t &&\n' span_id:428) (Token id:Id.Lit_Chars val:'\techo sub >.git/info/sparse-checkout &&\n' span_id:429) 
          (Token id:Id.Lit_Chars val:'\tgit checkout &&\n' span_id:430) (Token id:Id.Lit_Chars val:'\techo modified >> sub/added &&\n' span_id:431) 
          (Token id:Id.Lit_Chars val:'\tgit checkout . &&\n' span_id:432) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing init.t &&\n' span_id:433) 
          (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD\n' span_id:434)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checkout with --ignore-skip-worktree-bits' span_id:441))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:445) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "*" >.git/info/sparse-checkout &&\n'
            span_id: 446
          ) (Token id:Id.Lit_Chars val:'\tgit checkout -f top &&\n' span_id:447) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_file init.t &&\n' span_id:448) (Token id:Id.Lit_Chars val:'\techo sub >.git/info/sparse-checkout &&\n' span_id:449) 
          (Token id:Id.Lit_Chars val:'\tgit checkout &&\n' span_id:450) (Token id:Id.Lit_Chars val:'\techo modified >> sub/added &&\n' span_id:451) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout --ignore-skip-worktree-bits . &&\n'
            span_id: 452
          ) (Token id:Id.Lit_Chars val:'\ttest_path_is_file init.t &&\n' span_id:453) 
          (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD\n' span_id:454)
        )
      }
    )
    (C {(test_done)})
  ]
)