(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(DQ ('recursive merge corner cases w/ renames but not criss-crosses'))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup rename/delete + untracked file' span_id:21))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:25) 
          (Token id:Id.Lit_Chars val:'\techo "A pretty inscription" >ring &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit add ring &&\n' span_id:27) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit commit -m beginning &&\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\n' span_id:30) (Token id:Id.Lit_Chars val:'\tgit branch people &&\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b rename-the-ring &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit mv ring one-ring-to-rule-them-all &&\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit commit -m fullname &&\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\n' span_id:36) (Token id:Id.Lit_Chars val:'\tgit checkout people &&\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\tgit rm ring &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\techo gollum >owner &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\tgit add owner &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:41) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit commit -m track-people-instead-of-objects &&\n'
            span_id: 42
          ) (Token id:Id.Lit_Chars val:'\techo "Myyy PRECIOUSSS" >ring\n' span_id:43)
        )
      }
    )
    (C {(test_expect_success)} {(DQ ("Does git preserve Gollum's precious artifact?"))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git merge -s recursive rename-the-ring &&\n'
            span_id: 55
          ) (Token id:Id.Lit_Chars val:'\n' span_id:56) 
          (Token
            id: Id.Lit_Chars
            val: '\t# Make sure git did not delete an untracked file\n'
            span_id: 57
          ) (Token id:Id.Lit_Chars val:'\ttest -f ring\n' span_id:58)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup rename/modify/add-source conflict' span_id:84))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\n' span_id:93) 
          (Token
            id: Id.Lit_Chars
            val: '\tprintf "1\\n2\\n3\\n4\\n5\\n6\\n7\\n" >a &&\n'
            span_id: 94
          ) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m A &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\techo 8 >>a &&\n' span_id:100) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:101) (Token id:Id.Lit_Chars val:'\tgit commit -m B &&\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\n' span_id:103) (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\techo something completely different >a &&\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit commit -m C\n' span_id:108)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'rename/modify/add-source conflict resolvable' span_id:115))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\tgit merge -s recursive C^0 &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\n' span_id:123) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse B:a) = $(git rev-parse b) &&\n'
            span_id: 124
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse C:a) = $(git rev-parse a)\n' span_id:125)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'setup resolvable conflict missed if rename missed'
            span_id: 132
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:138) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\n' span_id:141) 
          (Token id:Id.Lit_Chars val:'\tprintf "1\\n2\\n3\\n4\\n5\\n" >a &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\techo foo >b &&\n' span_id:143) 
          (Token id:Id.Lit_Chars val:'\tgit add a b &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit commit -m A &&\n' span_id:145) 
          (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\n' span_id:147) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\tgit mv a c &&\n' span_id:149) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "Completely different content" >a &&\n'
            span_id: 150
          ) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:151) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m B &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\n' span_id:153) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:154) (Token id:Id.Lit_Chars val:'\techo 6 >>a &&\n' span_id:155) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\tgit commit -m C\n' span_id:157)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'conflict caused if rename not detected' span_id:164))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -q C^0 &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\tgit merge -s recursive B^0 &&\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\n' span_id:171) (Token id:Id.Lit_Chars val:'\ttest 3 -eq $(git ls-files -s | wc -l) &&\n' span_id:172) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 0 -eq $(git ls-files -u | wc -l) &&\n'
            span_id: 173
          ) (Token id:Id.Lit_Chars val:'\ttest 0 -eq $(git ls-files -o | wc -l) &&\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\n' span_id:175) (Token id:Id.Lit_Chars val:'\ttest_line_count = 6 c &&\n' span_id:176) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse HEAD:a) = $(git rev-parse B:a) &&\n'
            span_id: 177
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:b)\n' span_id:178)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup conflict resolved wrong if rename missed' span_id:185))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:189) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:190) (Token id:Id.Lit_Chars val:'\tgit clean -f &&\n' span_id:191) 
          (Token id:Id.Lit_Chars val:'\n' span_id:192) (Token id:Id.Lit_Chars val:'\tgit checkout -b D A &&\n' span_id:193) 
          (Token id:Id.Lit_Chars val:'\techo 7 >>a &&\n' span_id:194) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:195) 
          (Token id:Id.Lit_Chars val:'\tgit mv a c &&\n' span_id:196) (Token id:Id.Lit_Chars val:'\techo "Completely different content" >a &&\n' span_id:197) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:198) (Token id:Id.Lit_Chars val:'\tgit commit -m D &&\n' span_id:199) 
          (Token id:Id.Lit_Chars val:'\n' span_id:200) (Token id:Id.Lit_Chars val:'\tgit checkout -b E A &&\n' span_id:201) 
          (Token id:Id.Lit_Chars val:'\tgit rm a &&\n' span_id:202) (Token id:Id.Lit_Chars val:'\techo "Completely different content" >>a &&\n' span_id:203) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:204) (Token id:Id.Lit_Chars val:'\tgit commit -m E\n' span_id:205)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'missed conflict if rename not detected' span_id:212))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:216) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -q E^0 &&\n' span_id:217) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s recursive D^0\n' span_id:218)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'setup undetected rename/add-source causes data loss'
            span_id: 256
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:260) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:261) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:262) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:263) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:264) (Token id:Id.Lit_Chars val:'\n' span_id:265) 
          (Token id:Id.Lit_Chars val:'\tprintf "1\\n2\\n3\\n4\\n5\\n" >a &&\n' span_id:266) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:267) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m A &&\n' span_id:268) (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:269) 
          (Token id:Id.Lit_Chars val:'\n' span_id:270) (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:271) 
          (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:272) (Token id:Id.Lit_Chars val:'\tgit commit -m B &&\n' span_id:273) 
          (Token id:Id.Lit_Chars val:'\n' span_id:274) (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:275) 
          (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:276) (Token id:Id.Lit_Chars val:'\techo foobar >a &&\n' span_id:277) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:278) (Token id:Id.Lit_Chars val:'\tgit commit -m C\n' span_id:279)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'detect rename/add-source and preserve all data' span_id:286))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:290) 
          (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:291) (Token id:Id.Lit_Chars val:'\n' span_id:292) 
          (Token id:Id.Lit_Chars val:'\tgit merge -s recursive C^0 &&\n' span_id:293) (Token id:Id.Lit_Chars val:'\n' span_id:294) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 2 -eq $(git ls-files -s | wc -l) &&\n'
            span_id: 295
          ) (Token id:Id.Lit_Chars val:'\ttest 2 -eq $(git ls-files -u | wc -l) &&\n' span_id:296) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 0 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 297
          ) (Token id:Id.Lit_Chars val:'\n' span_id:298) 
          (Token id:Id.Lit_Chars val:'\ttest -f a &&\n' span_id:299) (Token id:Id.Lit_Chars val:'\ttest -f b &&\n' span_id:300) 
          (Token id:Id.Lit_Chars val:'\n' span_id:301) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:a) &&\n' span_id:302) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse HEAD:a) = $(git rev-parse C:a)\n'
            span_id: 303
          )
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'detect rename/add-source and preserve all data, merge other way'
            span_id: 310
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:314) 
          (Token id:Id.Lit_Chars val:'\tgit checkout C^0 &&\n' span_id:315) (Token id:Id.Lit_Chars val:'\n' span_id:316) 
          (Token id:Id.Lit_Chars val:'\tgit merge -s recursive B^0 &&\n' span_id:317) (Token id:Id.Lit_Chars val:'\n' span_id:318) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 2 -eq $(git ls-files -s | wc -l) &&\n'
            span_id: 319
          ) (Token id:Id.Lit_Chars val:'\ttest 2 -eq $(git ls-files -u | wc -l) &&\n' span_id:320) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 0 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 321
          ) (Token id:Id.Lit_Chars val:'\n' span_id:322) 
          (Token id:Id.Lit_Chars val:'\ttest -f a &&\n' span_id:323) (Token id:Id.Lit_Chars val:'\ttest -f b &&\n' span_id:324) 
          (Token id:Id.Lit_Chars val:'\n' span_id:325) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:a) &&\n' span_id:326) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse HEAD:a) = $(git rev-parse C:a)\n'
            span_id: 327
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup content merge + rename/directory conflict' span_id:334))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:338) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:339) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:340) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:341) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:342) (Token id:Id.Lit_Chars val:'\n' span_id:343) 
          (Token
            id: Id.Lit_Chars
            val: '\tprintf "1\\n2\\n3\\n4\\n5\\n6\\n" >file &&\n'
            span_id: 344
          ) (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:345) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:346) (Token id:Id.Lit_Chars val:'\tgit commit -m base &&\n' span_id:347) 
          (Token id:Id.Lit_Chars val:'\tgit tag base &&\n' span_id:348) (Token id:Id.Lit_Chars val:'\n' span_id:349) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b right &&\n' span_id:350) (Token id:Id.Lit_Chars val:'\techo 7 >>file &&\n' span_id:351) 
          (Token id:Id.Lit_Chars val:'\tmkdir newfile &&\n' span_id:352) (Token id:Id.Lit_Chars val:'\techo junk >newfile/realfile &&\n' span_id:353) 
          (Token id:Id.Lit_Chars val:'\tgit add file newfile/realfile &&\n' span_id:354) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:355) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m right &&\n' span_id:356) (Token id:Id.Lit_Chars val:'\n' span_id:357) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout -b left-conflict base &&\n'
            span_id: 358
          ) (Token id:Id.Lit_Chars val:'\techo 8 >>file &&\n' span_id:359) 
          (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:360) (Token id:Id.Lit_Chars val:'\tgit mv file newfile &&\n' span_id:361) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:362) (Token id:Id.Lit_Chars val:'\tgit commit -m left &&\n' span_id:363) 
          (Token id:Id.Lit_Chars val:'\n' span_id:364) (Token id:Id.Lit_Chars val:'\tgit checkout -b left-clean base &&\n' span_id:365) 
          (Token id:Id.Lit_Chars val:'\techo 0 >newfile &&\n' span_id:366) (Token id:Id.Lit_Chars val:'\tcat file >>newfile &&\n' span_id:367) 
          (Token id:Id.Lit_Chars val:'\tgit add newfile &&\n' span_id:368) (Token id:Id.Lit_Chars val:'\tgit rm file &&\n' span_id:369) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:370) (Token id:Id.Lit_Chars val:'\tgit commit -m left\n' span_id:371)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rename/directory conflict + clean content merge' span_id:378))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:382) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:383) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:384) 
          (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:385) (Token id:Id.Lit_Chars val:'\n' span_id:386) 
          (Token id:Id.Lit_Chars val:'\tgit checkout left-clean^0 &&\n' span_id:387) (Token id:Id.Lit_Chars val:'\n' span_id:388) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git merge -s recursive right^0 &&\n'
            span_id: 389
          ) (Token id:Id.Lit_Chars val:'\n' span_id:390) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 2 -eq $(git ls-files -s | wc -l) &&\n'
            span_id: 391
          ) (Token id:Id.Lit_Chars val:'\ttest 1 -eq $(git ls-files -u | wc -l) &&\n' span_id:392) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 1 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 393
          ) (Token id:Id.Lit_Chars val:'\n' span_id:394) 
          (Token id:Id.Lit_Chars val:'\techo 0 >expect &&\n' span_id:395) (Token id:Id.Lit_Chars val:'\tgit cat-file -p base:file >>expect &&\n' span_id:396) 
          (Token id:Id.Lit_Chars val:'\techo 7 >>expect &&\n' span_id:397) (Token id:Id.Lit_Chars val:'\ttest_cmp expect newfile~HEAD &&\n' span_id:398) 
          (Token id:Id.Lit_Chars val:'\n' span_id:399) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :2:newfile) = $(git hash-object expect) &&\n'
            span_id: 400
          ) (Token id:Id.Lit_Chars val:'\n' span_id:401) 
          (Token id:Id.Lit_Chars val:'\ttest -f newfile/realfile &&\n' span_id:402) (Token id:Id.Lit_Chars val:'\ttest -f newfile~HEAD\n' span_id:403)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rename/directory conflict + content merge conflict'
            span_id: 410
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:414) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:415) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:416) 
          (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:417) (Token id:Id.Lit_Chars val:'\n' span_id:418) 
          (Token id:Id.Lit_Chars val:'\tgit checkout left-conflict^0 &&\n' span_id:419) (Token id:Id.Lit_Chars val:'\n' span_id:420) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git merge -s recursive right^0 &&\n'
            span_id: 421
          ) (Token id:Id.Lit_Chars val:'\n' span_id:422) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 4 -eq $(git ls-files -s | wc -l) &&\n'
            span_id: 423
          ) (Token id:Id.Lit_Chars val:'\ttest 3 -eq $(git ls-files -u | wc -l) &&\n' span_id:424) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 1 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 425
          ) (Token id:Id.Lit_Chars val:'\n' span_id:426) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cat-file -p left-conflict:newfile >left &&\n'
            span_id: 427
          ) (Token id:Id.Lit_Chars val:'\tgit cat-file -p base:file    >base &&\n' span_id:428) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cat-file -p right:file   >right &&\n'
            span_id: 429
          ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge-file \\\n' span_id:430) 
          (Token id:Id.Lit_Chars val:'\t\t-L "HEAD:newfile" \\\n' span_id:431) (Token id:Id.Lit_Chars val:'\t\t-L "" \\\n' span_id:432) 
          (Token id:Id.Lit_Chars val:'\t\t-L "right^0:file" \\\n' span_id:433) (Token id:Id.Lit_Chars val:'\t\tleft base right &&\n' span_id:434) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp left newfile~HEAD &&\n' span_id:435) (Token id:Id.Lit_Chars val:'\n' span_id:436) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :1:newfile) = $(git rev-parse base:file) &&\n'
            span_id: 437
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :2:newfile) = $(git rev-parse left-conflict:newfile) &&\n'
            span_id: 438
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :3:newfile) = $(git rev-parse right:file) &&\n'
            span_id: 439
          ) (Token id:Id.Lit_Chars val:'\n' span_id:440) 
          (Token id:Id.Lit_Chars val:'\ttest -f newfile/realfile &&\n' span_id:441) (Token id:Id.Lit_Chars val:'\ttest -f newfile~HEAD\n' span_id:442)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'setup content merge + rename/directory conflict w/ disappearing dir'
            span_id: 449
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:453) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:454) (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:455) 
          (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:456) (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:457) 
          (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:458) (Token id:Id.Lit_Chars val:'\n' span_id:459) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:460) (Token id:Id.Lit_Chars val:'\tprintf "1\\n2\\n3\\n4\\n5\\n6\\n" >sub/file &&\n' span_id:461) 
          (Token id:Id.Lit_Chars val:'\tgit add sub/file &&\n' span_id:462) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:463) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m base &&\n' span_id:464) (Token id:Id.Lit_Chars val:'\tgit tag base &&\n' span_id:465) 
          (Token id:Id.Lit_Chars val:'\n' span_id:466) (Token id:Id.Lit_Chars val:'\tgit checkout -b right &&\n' span_id:467) 
          (Token id:Id.Lit_Chars val:'\techo 7 >>sub/file &&\n' span_id:468) (Token id:Id.Lit_Chars val:'\tgit add sub/file &&\n' span_id:469) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:470) (Token id:Id.Lit_Chars val:'\tgit commit -m right &&\n' span_id:471) 
          (Token id:Id.Lit_Chars val:'\n' span_id:472) (Token id:Id.Lit_Chars val:'\tgit checkout -b left base &&\n' span_id:473) 
          (Token id:Id.Lit_Chars val:'\techo 0 >newfile &&\n' span_id:474) (Token id:Id.Lit_Chars val:'\tcat sub/file >>newfile &&\n' span_id:475) 
          (Token id:Id.Lit_Chars val:'\tgit rm sub/file &&\n' span_id:476) (Token id:Id.Lit_Chars val:'\tmv newfile sub &&\n' span_id:477) 
          (Token id:Id.Lit_Chars val:'\tgit add sub &&\n' span_id:478) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:479) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m left\n' span_id:480)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'disappearing dir in rename/directory conflict handled'
            span_id: 487
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:491) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:492) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:493) 
          (Token id:Id.Lit_Chars val:'\n' span_id:494) (Token id:Id.Lit_Chars val:'\tgit checkout left^0 &&\n' span_id:495) 
          (Token id:Id.Lit_Chars val:'\n' span_id:496) (Token id:Id.Lit_Chars val:'\tgit merge -s recursive right^0 &&\n' span_id:497) 
          (Token id:Id.Lit_Chars val:'\n' span_id:498) (Token id:Id.Lit_Chars val:'\ttest 1 -eq $(git ls-files -s | wc -l) &&\n' span_id:499) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 0 -eq $(git ls-files -u | wc -l) &&\n'
            span_id: 500
          ) (Token id:Id.Lit_Chars val:'\ttest 0 -eq $(git ls-files -o | wc -l) &&\n' span_id:501) 
          (Token id:Id.Lit_Chars val:'\n' span_id:502) (Token id:Id.Lit_Chars val:'\techo 0 >expect &&\n' span_id:503) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cat-file -p base:sub/file >>expect &&\n'
            span_id: 504
          ) (Token id:Id.Lit_Chars val:'\techo 7 >>expect &&\n' span_id:505) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect sub &&\n' span_id:506) (Token id:Id.Lit_Chars val:'\n' span_id:507) (Token id:Id.Lit_Chars val:'\ttest -f sub\n' span_id:508)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup rename/rename (2to1) + modify/modify' span_id:549))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:553) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:554) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:555) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:556) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:557) (Token id:Id.Lit_Chars val:'\n' span_id:558) 
          (Token id:Id.Lit_Chars val:'\tprintf "1\\n2\\n3\\n4\\n5\\n" >a &&\n' span_id:559) (Token id:Id.Lit_Chars val:'\tprintf "5\\n4\\n3\\n2\\n1\\n" >b &&\n' span_id:560) 
          (Token id:Id.Lit_Chars val:'\tgit add a b &&\n' span_id:561) (Token id:Id.Lit_Chars val:'\tgit commit -m A &&\n' span_id:562) 
          (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:563) (Token id:Id.Lit_Chars val:'\n' span_id:564) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:565) (Token id:Id.Lit_Chars val:'\tgit mv a c &&\n' span_id:566) 
          (Token id:Id.Lit_Chars val:'\techo 0 >>b &&\n' span_id:567) (Token id:Id.Lit_Chars val:'\tgit add b &&\n' span_id:568) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m B &&\n' span_id:569) (Token id:Id.Lit_Chars val:'\n' span_id:570) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:571) (Token id:Id.Lit_Chars val:'\tgit mv b c &&\n' span_id:572) 
          (Token id:Id.Lit_Chars val:'\techo 6 >>a &&\n' span_id:573) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:574) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m C\n' span_id:575)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'handle rename/rename (2to1) conflict correctly' span_id:582))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:586) 
          (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:587) (Token id:Id.Lit_Chars val:'\n' span_id:588) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git merge -s recursive C^0 >out &&\n'
            span_id: 589
          ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "CONFLICT (rename/rename)" out &&\n' span_id:590) 
          (Token id:Id.Lit_Chars val:'\n' span_id:591) (Token id:Id.Lit_Chars val:'\ttest 2 -eq $(git ls-files -s | wc -l) &&\n' span_id:592) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 2 -eq $(git ls-files -u | wc -l) &&\n'
            span_id: 593
          ) (Token id:Id.Lit_Chars val:'\ttest 2 -eq $(git ls-files -u c | wc -l) &&\n' span_id:594) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 3 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 595
          ) (Token id:Id.Lit_Chars val:'\n' span_id:596) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f a &&\n' span_id:597) (Token id:Id.Lit_Chars val:'\ttest ! -f b &&\n' span_id:598) 
          (Token id:Id.Lit_Chars val:'\ttest -f c~HEAD &&\n' span_id:599) (Token id:Id.Lit_Chars val:'\ttest -f c~C^0 &&\n' span_id:600) 
          (Token id:Id.Lit_Chars val:'\n' span_id:601) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git hash-object c~HEAD) = $(git rev-parse C:a) &&\n'
            span_id: 602
          ) (Token id:Id.Lit_Chars val:'\ttest $(git hash-object c~C^0) = $(git rev-parse B:b)\n' span_id:603)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup simple rename/rename (1to2) conflict' span_id:622))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:626) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:627) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:628) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:629) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:630) (Token id:Id.Lit_Chars val:'\n' span_id:631) 
          (Token id:Id.Lit_Chars val:'\techo stuff >a &&\n' span_id:632) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:633) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:634) (Token id:Id.Lit_Chars val:'\tgit commit -m A &&\n' span_id:635) 
          (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:636) (Token id:Id.Lit_Chars val:'\n' span_id:637) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:638) (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:639) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:640) (Token id:Id.Lit_Chars val:'\tgit commit -m B &&\n' span_id:641) 
          (Token id:Id.Lit_Chars val:'\n' span_id:642) (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:643) 
          (Token id:Id.Lit_Chars val:'\tgit mv a c &&\n' span_id:644) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:645) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m C\n' span_id:646)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'merge has correct working tree contents' span_id:653))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:657) 
          (Token id:Id.Lit_Chars val:'\tgit checkout C^0 &&\n' span_id:658) (Token id:Id.Lit_Chars val:'\n' span_id:659) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git merge -s recursive B^0 &&\n'
            span_id: 660
          ) (Token id:Id.Lit_Chars val:'\n' span_id:661) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 3 -eq $(git ls-files -s | wc -l) &&\n'
            span_id: 662
          ) (Token id:Id.Lit_Chars val:'\ttest 3 -eq $(git ls-files -u | wc -l) &&\n' span_id:663) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 0 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 664
          ) (Token id:Id.Lit_Chars val:'\n' span_id:665) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :1:a) = $(git rev-parse A:a) &&\n'
            span_id: 666
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse :3:b) = $(git rev-parse A:a) &&\n' span_id:667) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :2:c) = $(git rev-parse A:a) &&\n'
            span_id: 668
          ) (Token id:Id.Lit_Chars val:'\n' span_id:669) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f a &&\n' span_id:670) (Token id:Id.Lit_Chars val:'\ttest $(git hash-object b) = $(git rev-parse A:a) &&\n' span_id:671) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git hash-object c) = $(git rev-parse A:a)\n'
            span_id: 672
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup rename/rename(1to2)/add-source conflict' span_id:698))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:702) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:703) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:704) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:705) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:706) (Token id:Id.Lit_Chars val:'\n' span_id:707) 
          (Token
            id: Id.Lit_Chars
            val: '\tprintf "1\\n2\\n3\\n4\\n5\\n6\\n7\\n" >a &&\n'
            span_id: 708
          ) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:709) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m A &&\n' span_id:710) (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:711) 
          (Token id:Id.Lit_Chars val:'\n' span_id:712) (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:713) 
          (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:714) (Token id:Id.Lit_Chars val:'\tgit commit -m B &&\n' span_id:715) 
          (Token id:Id.Lit_Chars val:'\n' span_id:716) (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:717) 
          (Token id:Id.Lit_Chars val:'\tgit mv a c &&\n' span_id:718) (Token id:Id.Lit_Chars val:'\techo something completely different >a &&\n' span_id:719) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:720) (Token id:Id.Lit_Chars val:'\tgit commit -m C\n' span_id:721)
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'detect conflict with rename/rename(1to2)/add-source merge'
            span_id: 728
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:732) 
          (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:733) (Token id:Id.Lit_Chars val:'\n' span_id:734) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git merge -s recursive C^0 &&\n'
            span_id: 735
          ) (Token id:Id.Lit_Chars val:'\n' span_id:736) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 4 -eq $(git ls-files -s | wc -l) &&\n'
            span_id: 737
          ) (Token id:Id.Lit_Chars val:'\ttest 0 -eq $(git ls-files -o | wc -l) &&\n' span_id:738) 
          (Token id:Id.Lit_Chars val:'\n' span_id:739) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse 3:a) = $(git rev-parse C:a) &&\n' span_id:740) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse 1:a) = $(git rev-parse A:a) &&\n'
            span_id: 741
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse 2:b) = $(git rev-parse B:b) &&\n' span_id:742) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse 3:c) = $(git rev-parse C:c) &&\n'
            span_id: 743
          ) (Token id:Id.Lit_Chars val:'\n' span_id:744) 
          (Token id:Id.Lit_Chars val:'\ttest -f a &&\n' span_id:745) (Token id:Id.Lit_Chars val:'\ttest -f b &&\n' span_id:746) 
          (Token id:Id.Lit_Chars val:'\ttest -f c\n' span_id:747)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'setup rename/rename(1to2)/add-source resolvable conflict'
            span_id: 754
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:758) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:759) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:760) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:761) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:762) (Token id:Id.Lit_Chars val:'\n' span_id:763) 
          (Token id:Id.Lit_Chars val:'\t>a &&\n' span_id:764) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:765) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:766) (Token id:Id.Lit_Chars val:'\tgit commit -m base &&\n' span_id:767) 
          (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:768) (Token id:Id.Lit_Chars val:'\n' span_id:769) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:770) (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:771) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:772) (Token id:Id.Lit_Chars val:'\tgit commit -m one &&\n' span_id:773) 
          (Token id:Id.Lit_Chars val:'\n' span_id:774) (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:775) 
          (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:776) (Token id:Id.Lit_Chars val:'\techo important-info >a &&\n' span_id:777) 
          (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:778) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:779) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m two\n' span_id:780)
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rename/rename/add-source still tracks new a file'
            span_id: 787
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:791) 
          (Token id:Id.Lit_Chars val:'\tgit checkout C^0 &&\n' span_id:792) (Token id:Id.Lit_Chars val:'\tgit merge -s recursive B^0 &&\n' span_id:793) 
          (Token id:Id.Lit_Chars val:'\n' span_id:794) (Token id:Id.Lit_Chars val:'\ttest 2 -eq $(git ls-files -s | wc -l) &&\n' span_id:795) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 0 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 796
          ) (Token id:Id.Lit_Chars val:'\n' span_id:797) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse HEAD:a) = $(git rev-parse C:a) &&\n'
            span_id: 798
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse HEAD:b) = $(git rev-parse A:a)\n' span_id:799)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup rename/rename(1to2)/add-dest conflict' span_id:806))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:810) 
          (Token id:Id.Lit_Chars val:'\tgit rm -rf . &&\n' span_id:811) (Token id:Id.Lit_Chars val:'\tgit clean -fdqx &&\n' span_id:812) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git &&\n' span_id:813) (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:814) (Token id:Id.Lit_Chars val:'\n' span_id:815) 
          (Token id:Id.Lit_Chars val:'\techo stuff >a &&\n' span_id:816) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:817) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:818) (Token id:Id.Lit_Chars val:'\tgit commit -m base &&\n' span_id:819) 
          (Token id:Id.Lit_Chars val:'\tgit tag A &&\n' span_id:820) (Token id:Id.Lit_Chars val:'\n' span_id:821) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b B A &&\n' span_id:822) (Token id:Id.Lit_Chars val:'\tgit mv a b &&\n' span_id:823) 
          (Token id:Id.Lit_Chars val:'\techo precious-data >c &&\n' span_id:824) (Token id:Id.Lit_Chars val:'\tgit add c &&\n' span_id:825) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:826) (Token id:Id.Lit_Chars val:'\tgit commit -m one &&\n' span_id:827) 
          (Token id:Id.Lit_Chars val:'\n' span_id:828) (Token id:Id.Lit_Chars val:'\tgit checkout -b C A &&\n' span_id:829) 
          (Token id:Id.Lit_Chars val:'\tgit mv a c &&\n' span_id:830) (Token id:Id.Lit_Chars val:'\techo important-info >b &&\n' span_id:831) 
          (Token id:Id.Lit_Chars val:'\tgit add b &&\n' span_id:832) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:833) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m two\n' span_id:834)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rename/rename/add-dest merge still knows about conflicting file versions'
            span_id: 841
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:845) 
          (Token id:Id.Lit_Chars val:'\tgit checkout C^0 &&\n' span_id:846) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s recursive B^0 &&\n' span_id:847) 
          (Token id:Id.Lit_Chars val:'\n' span_id:848) (Token id:Id.Lit_Chars val:'\ttest 5 -eq $(git ls-files -s | wc -l) &&\n' span_id:849) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 2 -eq $(git ls-files -u b | wc -l) &&\n'
            span_id: 850
          ) (Token id:Id.Lit_Chars val:'\ttest 2 -eq $(git ls-files -u c | wc -l) &&\n' span_id:851) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest 4 -eq $(git ls-files -o | wc -l) &&\n'
            span_id: 852
          ) (Token id:Id.Lit_Chars val:'\n' span_id:853) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :1:a) = $(git rev-parse A:a) &&\n'
            span_id: 854
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse :2:b) = $(git rev-parse C:b) &&\n' span_id:855) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :3:b) = $(git rev-parse B:b) &&\n'
            span_id: 856
          ) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse :2:c) = $(git rev-parse C:c) &&\n' span_id:857) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse :3:c) = $(git rev-parse B:c) &&\n'
            span_id: 858
          ) (Token id:Id.Lit_Chars val:'\n' span_id:859) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git hash-object c~HEAD) = $(git rev-parse C:c) &&\n'
            span_id: 860
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git hash-object c~B\\^0) = $(git rev-parse B:c) &&\n'
            span_id: 861
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git hash-object b~HEAD) = $(git rev-parse C:b) &&\n'
            span_id: 862
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git hash-object b~B\\^0) = $(git rev-parse B:b) &&\n'
            span_id: 863
          ) (Token id:Id.Lit_Chars val:'\n' span_id:864) 
          (Token id:Id.Lit_Chars val:'\ttest ! -f b &&\n' span_id:865) (Token id:Id.Lit_Chars val:'\ttest ! -f c\n' span_id:866)
        )
      }
    )
    (C {(test_done)})
  ]
)