(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git merge\n"> <"\n"> <"Testing octopus merge with more than 25 refs.">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <setup>)} 
      {
        (SQ <"\n"> <"\techo c0 > c0.c &&\n"> <"\tgit add c0.c &&\n"> <"\tgit commit -m c0 &&\n"> 
          <"\tgit tag c0 &&\n"> <"\ti=1 &&\n"> <"\twhile test $i -le 30\n"> <"\tdo\n"> <"\t\tgit reset --hard c0 &&\n"> 
          <"\t\techo c$i > c$i.c &&\n"> <"\t\tgit add c$i.c &&\n"> <"\t\tgit commit -m c$i &&\n"> <"\t\tgit tag c$i &&\n"> 
          <"\t\ti=$(expr $i + 1) || return 1\n"> <"\tdone\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"merge c1 with c2, c3, c4, ... c29">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard c1 &&\n"> <"\ti=2 &&\n"> <"\trefs=\"\" &&\n"> 
          <"\twhile test $i -le 30\n"> <"\tdo\n"> <"\t\trefs=\"$refs c$i\"\n"> <"\t\ti=$(expr $i + 1)\n"> <"\tdone &&\n"> 
          <"\tgit merge $refs &&\n"> <"\ttest \"$(git rev-parse c1)\" != \"$(git rev-parse HEAD)\" &&\n"> <"\ti=1 &&\n"> 
          <"\twhile test $i -le 30\n"> <"\tdo\n"> <"\t\ttest \"$(git rev-parse c$i)\" = \"$(git rev-parse HEAD^$i)\" &&\n"> 
          <"\t\ti=$(expr $i + 1) || return 1\n"> <"\tdone &&\n"> <"\tgit diff --exit-code &&\n"> <"\ti=1 &&\n"> <"\twhile test $i -le 30\n"> <"\tdo\n"> 
          <"\t\ttest -f c$i.c &&\n"> <"\t\ti=$(expr $i + 1) || return 1\n"> <"\tdone\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[78])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("Trying simple merge with c2\n") ("Trying simple merge with c3\n") 
              ("Trying simple merge with c4\n") ("Merge made by the 'octopus' strategy.\n") (" c2.c | 1 +\n") (" c3.c | 1 +\n") (" c4.c | 1 +\n") 
              (" 3 files changed, 3 insertions(+)\n") (" create mode 100644 c2.c\n") (" create mode 100644 c3.c\n") (" create mode 100644 c4.c\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [81]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"merge output uses pretty names">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard c1 &&\n"> <"\tgit merge c2 c3 c4 >actual &&\n"> 
          <"\ttest_i18ncmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[102])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("Merge made by the 'recursive' strategy.\n") (" c5.c | 1 +\n") 
              (" 1 file changed, 1 insertion(+)\n") (" create mode 100644 c5.c\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [105]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"merge reduces irrelevant remote heads">)} 
      {
        (SQ <"\n"> <"\tGIT_MERGE_VERBOSITY=0 git merge c4 c5 >actual &&\n"> 
          <"\ttest_i18ncmp expected actual\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[125])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("Fast-forwarding to: c1\n") ("Trying simple merge with c2\n") 
              ("Merge made by the 'octopus' strategy.\n") (" c1.c | 1 +\n") (" c2.c | 1 +\n") (" 2 files changed, 2 insertions(+)\n") 
              (" create mode 100644 c1.c\n") (" create mode 100644 c2.c\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [128]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"merge fast-forward output uses pretty names">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard c0 &&\n"> <"\tgit merge c1 c2 >actual &&\n"> 
          <"\ttest_i18ncmp expected actual\n">
        )
      }
    )
    (C {(test_done)})
  ]
)