(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(DQ ('merges with unrelated index changes'))}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <'setup trivial merges'>)} 
      {
        (SQ <'\n'> <'\ttest_seq 1 10 >a &&\n'> <'\tgit add a &&\n'> 
          <'\ttest_tick && git commit -m A &&\n'> <'\n'> <'\tgit branch A &&\n'> <'\tgit branch B &&\n'> <'\tgit branch C &&\n'> <'\tgit branch D &&\n'> 
          <'\tgit branch E &&\n'> <'\n'> <'\tgit checkout B &&\n'> <'\techo b >b &&\n'> <'\techo 11 >>a &&\n'> <'\tgit add a b &&\n'> 
          <'\ttest_tick && git commit -m B &&\n'> <'\n'> <'\tgit checkout C &&\n'> <'\techo c >c &&\n'> <'\tgit add c &&\n'> 
          <'\ttest_tick && git commit -m C &&\n'> <'\n'> <'\tgit checkout D &&\n'> <'\ttest_seq 2 10 >a &&\n'> <'\techo d >d &&\n'> <'\tgit add a d &&\n'> 
          <'\ttest_tick && git commit -m D &&\n'> <'\n'> <'\tgit checkout E &&\n'> <'\tmkdir subdir &&\n'> <'\tgit mv a subdir/a &&\n'> 
          <'\techo e >subdir/e &&\n'> <'\tgit add subdir &&\n'> <'\ttest_tick && git commit -m E\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'ff update'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout A^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\tgit merge E^0 &&\n'> <'\n'> <'\ttest_must_fail git rev-parse HEAD:random_file &&\n'> 
          <'\ttest "$(git diff --name-only --cached E)" = "random_file"\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'ff update, important file modified'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout A^0 &&\n'> <'\n'> <'\tmkdir subdir &&\n'> 
          <'\ttouch subdir/e &&\n'> <'\tgit add subdir/e &&\n'> <'\n'> <'\ttest_must_fail git merge E^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'resolve, trivial'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\ttest_must_fail git merge -s resolve C^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'resolve, non-trivial'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\ttest_must_fail git merge -s resolve D^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <recursive>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\ttest_must_fail git merge -s recursive C^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'octopus, unrelated file touched'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\ttest_must_fail git merge C^0 D^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'octopus, related file removed'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> <'\tgit rm b &&\n'> 
          <'\n'> <'\ttest_must_fail git merge C^0 D^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'octopus, related file modified'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\techo 12 >>a && git add a &&\n'> <'\n'> <'\ttest_must_fail git merge C^0 D^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <ours>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\ttest_must_fail git merge -s ours C^0\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <subtree>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout B^0 &&\n'> <'\n'> 
          <'\ttouch random_file && git add random_file &&\n'> <'\n'> <'\ttest_must_fail git merge -s subtree E^0\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)