(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git blame on conflicted files'>)}
          spids: [8]
        )
      ]
      spids: [8]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <'setup first case'>)} 
      {
        (SQ <'\n'> <'\t# Create the old file\n'> <'\techo "Old line" > file1 &&\n'> 
          <'\tgit add file1 &&\n'> <'\tgit commit --author "Old Line <ol@localhost>" -m file1.a &&\n'> <'\n'> <'\t# Branch\n'> 
          <'\tgit checkout -b foo &&\n'> <'\n'> <'\t# Do an ugly move and change\n'> <'\tgit rm file1 &&\n'> 
          <'\techo "New line ..."  > file2 &&\n'> <'\techo "... and more" >> file2 &&\n'> <'\tgit add file2 &&\n'> 
          <'\tgit commit --author "U Gly <ug@localhost>" -m ugly &&\n'> <'\n'> <'\t# Back to master and change something\n'> <'\tgit checkout master &&\n'> <'\techo "\n'> <'\n'> 
          <'bla" >> file1 &&\n'> <'\tgit commit --author "Old Line <ol@localhost>" -a -m file1.b &&\n'> <'\n'> 
          <'\t# Back to foo and merge master\n'> <'\tgit checkout foo &&\n'> <'\tif git merge master; then\n'> <'\t\techo needed conflict here\n'> 
          <'\t\texit 1\n'> <'\telse\n'> <'\t\techo merge failed - resolving automatically\n'> <'\tfi &&\n'> 
          <'\techo "New line ...\n'> <'... and more\n'> <'\n'> <'bla\n'> <'Even more" > file2 &&\n'> <'\tgit rm file1 &&\n'> 
          <'\tgit commit --author "M Result <mr@localhost>" -a -m merged &&\n'> <'\n'> <'\t# Back to master and change file1 again\n'> <'\tgit checkout master &&\n'> 
          <'\tsed s/bla/foo/ <file1 >X &&\n'> <'\trm file1 &&\n'> <'\tmv X file1 &&\n'> 
          <'\tgit commit --author "No Bla <nb@localhost>" -a -m replace &&\n'> <'\n'> <'\t# Try to merge into foo again\n'> <'\tgit checkout foo &&\n'> 
          <'\tif git merge master; then\n'> <'\t\techo needed conflict here\n'> <'\t\texit 1\n'> <'\telse\n'> 
          <'\t\techo merge failed - test is setup\n'> <'\tfi\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'blame runs on unconflicted file while other file has conflicts'>)} 
      {(SQ <'\n'> <'\tgit blame file2\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'blame does not crash with conflicted file in stages 1,3'>)} 
      {(SQ <'\n'> <'\tgit blame file1\n'>)}
    )
    (C {(test_done)})
  ]
)