(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)})
  ]
)