(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 <'merging with large rename matrix'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <count>
      name: count
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName i)} {<-le>} {($ Id.VSub_Number 1)}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {($ Id.VSub_DollarName i)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName i)}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup (initial)'>)}
        {
          (SQ <'\n'> <'\ttouch file &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m initial &&\n'> 
            <'\tgit tag initial\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <make_text>
      name: make_text
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>} {($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <count>
                            more_env: []
                            words: [{<count>} {<20>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                        {($ Id.VSub_DollarName i)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>} {($ Id.VSub_Number 3)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_rename>
      name: test_rename
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ <'rename ('> ($ Id.VSub_Number 1) <', '> ($ Id.VSub_Number 2) <')'>)}
                {(SQ <'\n'> <'\tn='>) ($ Id.VSub_Number 1) (SQ <' &&\n'> <'\texpect='>) 
                  ($ Id.VSub_Number 2) 
                  (SQ <' &&\n'> <'\tgit checkout -f master &&\n'> 
                    <'\ttest_might_fail git branch -D test$n &&\n'> <'\tgit reset --hard initial &&\n'> <'\tfor i in $(count $n); do\n'> 
                    <'\t\tmake_text $i initial initial >$i\n'> <'\tdone &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m add=$n &&\n'> <'\tfor i in $(count $n); do\n'> 
                    <'\t\tmake_text $i changed initial >$i\n'> <'\tdone &&\n'> <'\tgit commit -a -m change=$n &&\n'> <'\tgit checkout -b test$n HEAD^ &&\n'> 
                    <'\tfor i in $(count $n); do\n'> <'\t\tgit rm $i\n'> <'\t\tmake_text $i initial changed >$i.moved\n'> <'\tdone &&\n'> 
                    <'\tgit add . &&\n'> <'\tgit commit -m change+rename=$n &&\n'> <'\tcase "$expect" in\n'> <'\t\tok) git merge master ;;\n'> 
                    <'\t\t *) test_must_fail git merge master ;;\n'> <'\tesac\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_rename>
      more_env: []
      words: [{<test_rename>} {<5>} {<ok>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set diff.renamelimit to 4'>)}
        {(SQ <'\n'> <'\tgit config diff.renamelimit 4\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_rename>
      more_env: []
      words: [{<test_rename>} {<4>} {<ok>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_rename>
      more_env: []
      words: [{<test_rename>} {<5>} {<fail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set merge.renamelimit to 5'>)}
        {(SQ <'\n'> <'\tgit config merge.renamelimit 5\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_rename>
      more_env: []
      words: [{<test_rename>} {<5>} {<ok>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_rename>
      more_env: []
      words: [{<test_rename>} {<6>} {<fail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup large simple rename'>)}
        {
          (SQ <'\n'> <'\tgit config --unset merge.renamelimit &&\n'> 
            <'\tgit config --unset diff.renamelimit &&\n'> <'\n'> <'\tgit reset --hard initial &&\n'> <'\tfor i in $(count 200); do\n'> 
            <'\t\tmake_text foo bar baz >$i\n'> <'\tdone &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m create-files &&\n'> <'\n'> 
            <'\tgit branch simple-change &&\n'> <'\tgit checkout -b simple-rename &&\n'> <'\n'> <'\tmkdir builtin &&\n'> 
            <'\tgit mv [0-9]* builtin/ &&\n'> <'\tgit commit -m renamed &&\n'> <'\n'> <'\tgit checkout simple-change &&\n'> 
            <'\t>unrelated-change &&\n'> <'\tgit add unrelated-change &&\n'> <'\tgit commit -m unrelated-change\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'massive simple rename does not spam added files'>)}
        {
          (SQ <'\n'> <'\tsane_unset GIT_MERGE_VERBOSITY &&\n'> 
            <'\tgit merge --no-stat simple-rename | grep -v Removing >output &&\n'> <'\ttest_line_count -lt 5 output\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)