(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(DQ ("recursive merge corner cases w/ renames but not criss-crosses"))}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <"setup rename/delete + untracked file">)} 
      {
        (SQ <"\n"> <"\techo \"A pretty inscription\" >ring &&\n"> <"\tgit add ring &&\n"> 
          <"\ttest_tick &&\n"> <"\tgit commit -m beginning &&\n"> <"\n"> <"\tgit branch people &&\n"> 
          <"\tgit checkout -b rename-the-ring &&\n"> <"\tgit mv ring one-ring-to-rule-them-all &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m fullname &&\n"> 
          <"\n"> <"\tgit checkout people &&\n"> <"\tgit rm ring &&\n"> <"\techo gollum >owner &&\n"> 
          <"\tgit add owner &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m track-people-instead-of-objects &&\n"> 
          <"\techo \"Myyy PRECIOUSSS\" >ring\n">
        )
      }
    )
    (C {(test_expect_success)} {(DQ ("Does git preserve Gollum's precious artifact?"))} 
      {
        (SQ <"\n"> <"\ttest_must_fail git merge -s recursive rename-the-ring &&\n"> <"\n"> 
          <"\t# Make sure git did not delete an untracked file\n"> <"\ttest -f ring\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup rename/modify/add-source conflict">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n6\\n7\\n\" >a &&\n"> <"\tgit add a &&\n"> 
          <"\tgit commit -m A &&\n"> <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\techo 8 >>a &&\n"> <"\tgit add a &&\n"> 
          <"\tgit commit -m B &&\n"> <"\n"> <"\tgit checkout -b C A &&\n"> <"\tgit mv a b &&\n"> 
          <"\techo something completely different >a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m C\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"rename/modify/add-source conflict resolvable">)} 
      {
        (SQ <"\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\tgit merge -s recursive C^0 &&\n"> <"\n"> 
          <"\ttest $(git rev-parse B:a) = $(git rev-parse b) &&\n"> <"\ttest $(git rev-parse C:a) = $(git rev-parse a)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup resolvable conflict missed if rename missed">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n\" >a &&\n"> <"\techo foo >b &&\n"> <"\tgit add a b &&\n"> 
          <"\tgit commit -m A &&\n"> <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\tgit mv a c &&\n"> 
          <"\techo \"Completely different content\" >a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m B &&\n"> <"\n"> <"\tgit checkout -b C A &&\n"> 
          <"\techo 6 >>a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m C\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"conflict caused if rename not detected">)} 
      {
        (SQ <"\n"> <"\tgit checkout -q C^0 &&\n"> <"\tgit merge -s recursive B^0 &&\n"> <"\n"> 
          <"\ttest 3 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -u | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> 
          <"\n"> <"\ttest_line_count = 6 c &&\n"> <"\ttest $(git rev-parse HEAD:a) = $(git rev-parse B:a) &&\n"> 
          <"\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:b)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup conflict resolved wrong if rename missed">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit clean -f &&\n"> <"\n"> 
          <"\tgit checkout -b D A &&\n"> <"\techo 7 >>a &&\n"> <"\tgit add a &&\n"> <"\tgit mv a c &&\n"> 
          <"\techo \"Completely different content\" >a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m D &&\n"> <"\n"> <"\tgit checkout -b E A &&\n"> <"\tgit rm a &&\n"> 
          <"\techo \"Completely different content\" >>a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m E\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"missed conflict if rename not detected">)} 
      {(SQ <"\n"> <"\tgit checkout -q E^0 &&\n"> <"\ttest_must_fail git merge -s recursive D^0\n">)}
    )
    (C {(test_expect_success)} {(SQ <"setup undetected rename/add-source causes data loss">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n\" >a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m A &&\n"> 
          <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\tgit mv a b &&\n"> <"\tgit commit -m B &&\n"> <"\n"> 
          <"\tgit checkout -b C A &&\n"> <"\tgit mv a b &&\n"> <"\techo foobar >a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m C\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"detect rename/add-source and preserve all data">)} 
      {
        (SQ <"\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\tgit merge -s recursive C^0 &&\n"> <"\n"> 
          <"\ttest 2 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 2 -eq $(git ls-files -u | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> 
          <"\n"> <"\ttest -f a &&\n"> <"\ttest -f b &&\n"> <"\n"> 
          <"\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:a) &&\n"> <"\ttest $(git rev-parse HEAD:a) = $(git rev-parse C:a)\n">
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ <"detect rename/add-source and preserve all data, merge other way">)} 
      {
        (SQ <"\n"> <"\tgit checkout C^0 &&\n"> <"\n"> <"\tgit merge -s recursive B^0 &&\n"> <"\n"> 
          <"\ttest 2 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 2 -eq $(git ls-files -u | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> 
          <"\n"> <"\ttest -f a &&\n"> <"\ttest -f b &&\n"> <"\n"> 
          <"\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:a) &&\n"> <"\ttest $(git rev-parse HEAD:a) = $(git rev-parse C:a)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup content merge + rename/directory conflict">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n6\\n\" >file &&\n"> <"\tgit add file &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m base &&\n"> <"\tgit tag base &&\n"> <"\n"> <"\tgit checkout -b right &&\n"> <"\techo 7 >>file &&\n"> 
          <"\tmkdir newfile &&\n"> <"\techo junk >newfile/realfile &&\n"> <"\tgit add file newfile/realfile &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m right &&\n"> <"\n"> <"\tgit checkout -b left-conflict base &&\n"> <"\techo 8 >>file &&\n"> <"\tgit add file &&\n"> 
          <"\tgit mv file newfile &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m left &&\n"> <"\n"> <"\tgit checkout -b left-clean base &&\n"> 
          <"\techo 0 >newfile &&\n"> <"\tcat file >>newfile &&\n"> <"\tgit add newfile &&\n"> <"\tgit rm file &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m left\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rename/directory conflict + clean content merge">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit reset --hard &&\n"> <"\tgit clean -fdqx &&\n"> 
          <"\n"> <"\tgit checkout left-clean^0 &&\n"> <"\n"> <"\ttest_must_fail git merge -s recursive right^0 &&\n"> 
          <"\n"> <"\ttest 2 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 1 -eq $(git ls-files -u | wc -l) &&\n"> 
          <"\ttest 1 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> <"\techo 0 >expect &&\n"> <"\tgit cat-file -p base:file >>expect &&\n"> 
          <"\techo 7 >>expect &&\n"> <"\ttest_cmp expect newfile~HEAD &&\n"> <"\n"> 
          <"\ttest $(git rev-parse :2:newfile) = $(git hash-object expect) &&\n"> <"\n"> <"\ttest -f newfile/realfile &&\n"> <"\ttest -f newfile~HEAD\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rename/directory conflict + content merge conflict">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit reset --hard &&\n"> <"\tgit clean -fdqx &&\n"> 
          <"\n"> <"\tgit checkout left-conflict^0 &&\n"> <"\n"> <"\ttest_must_fail git merge -s recursive right^0 &&\n"> 
          <"\n"> <"\ttest 4 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 3 -eq $(git ls-files -u | wc -l) &&\n"> 
          <"\ttest 1 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> <"\tgit cat-file -p left-conflict:newfile >left &&\n"> 
          <"\tgit cat-file -p base:file    >base &&\n"> <"\tgit cat-file -p right:file   >right &&\n"> <"\ttest_must_fail git merge-file \\\n"> 
          <"\t\t-L \"HEAD:newfile\" \\\n"> <"\t\t-L \"\" \\\n"> <"\t\t-L \"right^0:file\" \\\n"> <"\t\tleft base right &&\n"> 
          <"\ttest_cmp left newfile~HEAD &&\n"> <"\n"> <"\ttest $(git rev-parse :1:newfile) = $(git rev-parse base:file) &&\n"> 
          <"\ttest $(git rev-parse :2:newfile) = $(git rev-parse left-conflict:newfile) &&\n"> <"\ttest $(git rev-parse :3:newfile) = $(git rev-parse right:file) &&\n"> <"\n"> 
          <"\ttest -f newfile/realfile &&\n"> <"\ttest -f newfile~HEAD\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"setup content merge + rename/directory conflict w/ disappearing dir">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> 
          <"\trm -rf .git &&\n"> <"\tgit init &&\n"> <"\n"> <"\tmkdir sub &&\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n6\\n\" >sub/file &&\n"> 
          <"\tgit add sub/file &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m base &&\n"> <"\tgit tag base &&\n"> <"\n"> 
          <"\tgit checkout -b right &&\n"> <"\techo 7 >>sub/file &&\n"> <"\tgit add sub/file &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m right &&\n"> <"\n"> <"\tgit checkout -b left base &&\n"> <"\techo 0 >newfile &&\n"> <"\tcat sub/file >>newfile &&\n"> 
          <"\tgit rm sub/file &&\n"> <"\tmv newfile sub &&\n"> <"\tgit add sub &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m left\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"disappearing dir in rename/directory conflict handled">)} 
      {
        (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit clean -fdqx &&\n"> <"\n"> 
          <"\tgit checkout left^0 &&\n"> <"\n"> <"\tgit merge -s recursive right^0 &&\n"> <"\n"> <"\ttest 1 -eq $(git ls-files -s | wc -l) &&\n"> 
          <"\ttest 0 -eq $(git ls-files -u | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> <"\techo 0 >expect &&\n"> 
          <"\tgit cat-file -p base:sub/file >>expect &&\n"> <"\techo 7 >>expect &&\n"> <"\ttest_cmp expect sub &&\n"> <"\n"> <"\ttest -f sub\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup rename/rename (2to1) + modify/modify">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n\" >a &&\n"> <"\tprintf \"5\\n4\\n3\\n2\\n1\\n\" >b &&\n"> 
          <"\tgit add a b &&\n"> <"\tgit commit -m A &&\n"> <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> 
          <"\tgit mv a c &&\n"> <"\techo 0 >>b &&\n"> <"\tgit add b &&\n"> <"\tgit commit -m B &&\n"> <"\n"> 
          <"\tgit checkout -b C A &&\n"> <"\tgit mv b c &&\n"> <"\techo 6 >>a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m C\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"handle rename/rename (2to1) conflict correctly">)} 
      {
        (SQ <"\n"> <"\tgit checkout B^0 &&\n"> <"\n"> 
          <"\ttest_must_fail git merge -s recursive C^0 >out &&\n"> <"\ttest_i18ngrep \"CONFLICT (rename/rename)\" out &&\n"> <"\n"> 
          <"\ttest 2 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 2 -eq $(git ls-files -u | wc -l) &&\n"> <"\ttest 2 -eq $(git ls-files -u c | wc -l) &&\n"> 
          <"\ttest 3 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> <"\ttest ! -f a &&\n"> <"\ttest ! -f b &&\n"> <"\ttest -f c~HEAD &&\n"> <"\ttest -f c~C^0 &&\n"> 
          <"\n"> <"\ttest $(git hash-object c~HEAD) = $(git rev-parse C:a) &&\n"> 
          <"\ttest $(git hash-object c~C^0) = $(git rev-parse B:b)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup simple rename/rename (1to2) conflict">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\techo stuff >a &&\n"> <"\tgit add a &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m A &&\n"> 
          <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\tgit mv a b &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m B &&\n"> <"\n"> <"\tgit checkout -b C A &&\n"> <"\tgit mv a c &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m C\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"merge has correct working tree contents">)} 
      {
        (SQ <"\n"> <"\tgit checkout C^0 &&\n"> <"\n"> 
          <"\ttest_must_fail git merge -s recursive B^0 &&\n"> <"\n"> <"\ttest 3 -eq $(git ls-files -s | wc -l) &&\n"> 
          <"\ttest 3 -eq $(git ls-files -u | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> 
          <"\ttest $(git rev-parse :1:a) = $(git rev-parse A:a) &&\n"> <"\ttest $(git rev-parse :3:b) = $(git rev-parse A:a) &&\n"> 
          <"\ttest $(git rev-parse :2:c) = $(git rev-parse A:a) &&\n"> <"\n"> <"\ttest ! -f a &&\n"> <"\ttest $(git hash-object b) = $(git rev-parse A:a) &&\n"> 
          <"\ttest $(git hash-object c) = $(git rev-parse A:a)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup rename/rename(1to2)/add-source conflict">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\tprintf \"1\\n2\\n3\\n4\\n5\\n6\\n7\\n\" >a &&\n"> <"\tgit add a &&\n"> 
          <"\tgit commit -m A &&\n"> <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\tgit mv a b &&\n"> 
          <"\tgit commit -m B &&\n"> <"\n"> <"\tgit checkout -b C A &&\n"> <"\tgit mv a c &&\n"> 
          <"\techo something completely different >a &&\n"> <"\tgit add a &&\n"> <"\tgit commit -m C\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"detect conflict with rename/rename(1to2)/add-source merge">)} 
      {
        (SQ <"\n"> <"\tgit checkout B^0 &&\n"> <"\n"> 
          <"\ttest_must_fail git merge -s recursive C^0 &&\n"> <"\n"> <"\ttest 4 -eq $(git ls-files -s | wc -l) &&\n"> 
          <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> <"\ttest $(git rev-parse 3:a) = $(git rev-parse C:a) &&\n"> 
          <"\ttest $(git rev-parse 1:a) = $(git rev-parse A:a) &&\n"> <"\ttest $(git rev-parse 2:b) = $(git rev-parse B:b) &&\n"> 
          <"\ttest $(git rev-parse 3:c) = $(git rev-parse C:c) &&\n"> <"\n"> <"\ttest -f a &&\n"> <"\ttest -f b &&\n"> <"\ttest -f c\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup rename/rename(1to2)/add-source resolvable conflict">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\t>a &&\n"> <"\tgit add a &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m base &&\n"> 
          <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\tgit mv a b &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m one &&\n"> <"\n"> <"\tgit checkout -b C A &&\n"> <"\tgit mv a b &&\n"> <"\techo important-info >a &&\n"> 
          <"\tgit add a &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m two\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"rename/rename/add-source still tracks new a file">)} 
      {
        (SQ <"\n"> <"\tgit checkout C^0 &&\n"> <"\tgit merge -s recursive B^0 &&\n"> <"\n"> 
          <"\ttest 2 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 0 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> 
          <"\ttest $(git rev-parse HEAD:a) = $(git rev-parse C:a) &&\n"> <"\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:a)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup rename/rename(1to2)/add-dest conflict">)} 
      {
        (SQ <"\n"> <"\tgit rm -rf . &&\n"> <"\tgit clean -fdqx &&\n"> <"\trm -rf .git &&\n"> 
          <"\tgit init &&\n"> <"\n"> <"\techo stuff >a &&\n"> <"\tgit add a &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m base &&\n"> 
          <"\tgit tag A &&\n"> <"\n"> <"\tgit checkout -b B A &&\n"> <"\tgit mv a b &&\n"> <"\techo precious-data >c &&\n"> 
          <"\tgit add c &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m one &&\n"> <"\n"> <"\tgit checkout -b C A &&\n"> 
          <"\tgit mv a c &&\n"> <"\techo important-info >b &&\n"> <"\tgit add b &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m two\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"rename/rename/add-dest merge still knows about conflicting file versions">)} 
      {
        (SQ <"\n"> <"\tgit checkout C^0 &&\n"> <"\ttest_must_fail git merge -s recursive B^0 &&\n"> 
          <"\n"> <"\ttest 5 -eq $(git ls-files -s | wc -l) &&\n"> <"\ttest 2 -eq $(git ls-files -u b | wc -l) &&\n"> 
          <"\ttest 2 -eq $(git ls-files -u c | wc -l) &&\n"> <"\ttest 4 -eq $(git ls-files -o | wc -l) &&\n"> <"\n"> 
          <"\ttest $(git rev-parse :1:a) = $(git rev-parse A:a) &&\n"> <"\ttest $(git rev-parse :2:b) = $(git rev-parse C:b) &&\n"> 
          <"\ttest $(git rev-parse :3:b) = $(git rev-parse B:b) &&\n"> <"\ttest $(git rev-parse :2:c) = $(git rev-parse C:c) &&\n"> 
          <"\ttest $(git rev-parse :3:c) = $(git rev-parse B:c) &&\n"> <"\n"> <"\ttest $(git hash-object c~HEAD) = $(git rev-parse C:c) &&\n"> 
          <"\ttest $(git hash-object c~B\\^0) = $(git rev-parse B:c) &&\n"> <"\ttest $(git hash-object b~HEAD) = $(git rev-parse C:b) &&\n"> 
          <"\ttest $(git hash-object b~B\\^0) = $(git rev-parse B:b) &&\n"> <"\n"> <"\ttest ! -f b &&\n"> <"\ttest ! -f c\n">
        )
      }
    )
    (C {(test_done)})
  ]
)