(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"rebase should handle arbitrary git message">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(F)} spids:[17])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("This is an example of a commit log message\n") 
              ("that does not  conform to git commit convention.\n") ("\n") ("It has two paragraphs, but its first paragraph is not friendly\n") 
              ("to oneline summary format.\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [20]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(G)} spids:[27])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("commit log message containing a diff\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [30]
        )
      ]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\n"> <"\t>file1 &&\n"> <"\t>file2 &&\n"> <"\tgit add file1 file2 &&\n"> 
          <"\ttest_tick &&\n"> <"\tgit commit -m \"Initial commit\" &&\n"> <"\tgit branch diff-in-message &&\n"> <"\n"> 
          <"\tgit checkout -b multi-line-subject &&\n"> <"\tcat F >file2 &&\n"> <"\tgit add file2 &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -F F &&\n"> <"\n"> 
          <"\tgit cat-file commit HEAD | sed -e \"1,/^\\$/d\" >F0 &&\n"> <"\n"> <"\tgit checkout diff-in-message &&\n"> 
          <"\techo \"commit log message containing a diff\" >G &&\n"> <"\techo \"\" >>G &&\n"> <"\tcat G >file2 &&\n"> <"\tgit add file2 &&\n"> 
          <"\tgit diff --cached >>G &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -F G &&\n"> <"\n"> 
          <"\tgit cat-file commit HEAD | sed -e \"1,/^\\$/d\" >G0 &&\n"> <"\n"> <"\tgit checkout master &&\n"> <"\n"> <"\techo One >file1 &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit add file1 &&\n"> <"\tgit commit -m \"Second commit\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase commit with multi-line subject">)} 
      {
        (SQ <"\n"> <"\n"> <"\tgit rebase master multi-line-subject &&\n"> 
          <"\tgit cat-file commit HEAD | sed -e \"1,/^\\$/d\" >F1 &&\n"> <"\n"> <"\ttest_cmp F0 F1 &&\n"> <"\ttest_cmp F F0\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase commit with diff in message">)} 
      {
        (SQ <"\n"> <"\tgit rebase master diff-in-message &&\n"> 
          <"\tgit cat-file commit HEAD | sed -e \"1,/^$/d\" >G1 &&\n"> <"\ttest_cmp G0 G1 &&\n"> <"\ttest_cmp G G0\n">
        )
      }
    )
    (C {(test_done)})
  ]
)