(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 <'Intent to add'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'intent to add'>)}
        {
          (SQ <'\n'> <'\ttest_commit 1 &&\n'> <'\tgit rm 1.t &&\n'> <'\techo hello >1.t &&\n'> 
            <'\techo hello >file &&\n'> <'\techo hello >elif &&\n'> <'\tgit add -N file &&\n'> <'\tgit add elif &&\n'> <'\tgit add -N 1.t\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git status'>)}
        {
          (SQ <'\n'> <'\tgit status --porcelain | grep -v actual >actual &&\n'> 
            <'\tcat >expect <<-\\EOF &&\n'> <'\tDA 1.t\n'> <'\tA  elif\n'> <'\t A file\n'> <'\tEOF\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check result of "add -N"'>)}
        {
          (SQ <'\n'> <'\tgit ls-files -s file >actual &&\n'> 
            <'\tempty=$(git hash-object --stdin </dev/null) &&\n'> <'\techo "100644 $empty 0\tfile" >expect &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'intent to add is just an ordinary empty blob'>)}
        {
          (SQ <'\n'> <'\tgit add -u &&\n'> <'\tgit ls-files -s file >actual &&\n'> 
            <'\tgit ls-files -s elif | sed -e "s/elif/file/" >expect &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'intent to add does not clobber existing paths'>)}
        {
          (SQ <'\n'> <'\tgit add -N file elif &&\n'> 
            <'\tempty=$(git hash-object --stdin </dev/null) &&\n'> <'\tgit ls-files -s >actual &&\n'> <'\t! grep "$empty" actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'i-t-a entry is simply ignored'>)}
        {
          (SQ <'\n'> <'\ttest_tick &&\n'> <'\tgit commit -a -m initial &&\n'> 
            <'\tgit reset --hard &&\n'> <'\n'> <'\techo xyzzy >rezrov &&\n'> <'\techo frotz >nitfol &&\n'> <'\tgit add rezrov &&\n'> 
            <'\tgit add -N nitfol &&\n'> <'\tgit commit -m second &&\n'> <'\ttest $(git ls-tree HEAD -- nitfol | wc -l) = 0 &&\n'> 
            <'\ttest $(git diff --name-only HEAD -- nitfol | wc -l) = 1 &&\n'> <'\ttest $(git diff --name-only --ita-invisible-in-index HEAD -- nitfol | wc -l) = 0 &&\n'> 
            <'\ttest $(git diff --name-only --ita-invisible-in-index -- nitfol | wc -l) = 1\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'can commit with an unrelated i-t-a entry in index'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\techo bozbar >rezrov &&\n'> 
            <'\techo frotz >nitfol &&\n'> <'\tgit add rezrov &&\n'> <'\tgit add -N nitfol &&\n'> <'\tgit commit -m partial rezrov\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'can "commit -a" with an i-t-a entry'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\t: >nitfol &&\n'> <'\tgit add -N nitfol &&\n'> 
            <'\tgit commit -a -m all\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cache-tree invalidates i-t-a paths'>)}
        {
          (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tmkdir dir &&\n'> <'\t: >dir/foo &&\n'> 
            <'\tgit add dir/foo &&\n'> <'\tgit commit -m foo &&\n'> <'\n'> <'\t: >dir/bar &&\n'> <'\tgit add -N dir/bar &&\n'> 
            <'\tgit diff --cached --name-only >actual &&\n'> <'\techo dir/bar >expect &&\n'> <'\ttest_cmp expect actual &&\n'> <'\n'> 
            <'\tgit write-tree >/dev/null &&\n'> <'\n'> <'\tgit diff --cached --name-only >actual &&\n'> <'\techo dir/bar >expect &&\n'> 
            <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cache-tree does not ignore dir that has i-t-a entries'>)}
        {
          (SQ <'\n'> <'\tgit init ita-in-dir &&\n'> <'\t(\n'> <'\t\tcd ita-in-dir &&\n'> 
            <'\t\tmkdir 2 &&\n'> <'\t\tfor f in 1 2/1 2/2 3\n'> <'\t\tdo\n'> <'\t\t\techo "$f" >"$f"\n'> <'\t\tdone &&\n'> 
            <'\t\tgit add 1 2/2 3 &&\n'> <'\t\tgit add -N 2/1 &&\n'> <'\t\tgit commit -m committed &&\n'> 
            <'\t\tgit ls-tree -r HEAD >actual &&\n'> <'\t\tgrep 2/2 actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cache-tree does skip dir that becomes empty'>)}
        {
          (SQ <'\n'> <'\trm -fr ita-in-dir &&\n'> <'\tgit init ita-in-dir &&\n'> <'\t(\n'> 
            <'\t\tcd ita-in-dir &&\n'> <'\t\tmkdir -p 1/2/3 &&\n'> <'\t\techo 4 >1/2/3/4 &&\n'> <'\t\tgit add -N 1/2/3/4 &&\n'> 
            <'\t\tgit write-tree >actual &&\n'> <'\t\techo $EMPTY_TREE >expected &&\n'> <'\t\ttest_cmp expected actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit: ita entries ignored in empty intial commit check'>)}
        {
          (SQ <'\n'> <'\tgit init empty-intial-commit &&\n'> <'\t(\n'> 
            <'\t\tcd empty-intial-commit &&\n'> <'\t\t: >one &&\n'> <'\t\tgit add -N one &&\n'> <'\t\ttest_must_fail git commit -m nothing-new-here\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit: ita entries ignored in empty commit check'>)}
        {
          (SQ <'\n'> <'\tgit init empty-subsequent-commit &&\n'> <'\t(\n'> 
            <'\t\tcd empty-subsequent-commit &&\n'> <'\t\ttest_commit one &&\n'> <'\t\t: >two &&\n'> <'\t\tgit add -N two &&\n'> 
            <'\t\ttest_must_fail git commit -m nothing-new-here\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)