(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git merge-tree' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:28) (Token id: Id.Lit_Chars val: '\ttest_commit "initial" "initial-file" "initial"\n' span_id: 29 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file add A, !B' span_id:36))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:40) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:41) (Token id:Id.Lit_Chars val:'added in remote\n' span_id:42) (Token id: Id.Lit_Chars val: ' their 100644 43d5a8ed6ef6c00ff775008633f95787d088285d ONE\n' span_id: 43 ) (Token id:Id.Lit_Chars val:'@@ -0,0 +1 @@\n' span_id:44) (Token id:Id.Lit_Chars val:'+AAA\n' span_id:45) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:46) (Token id:Id.Lit_Chars val:'\n' span_id:47) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\ttest_commit "add-a-not-b" "ONE" "AAA" &&\n' span_id:49) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial initial add-a-not-b >actual &&\n' span_id: 50 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:51) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file add !A, B' span_id:58))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:62) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:63) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:64) (Token id:Id.Lit_Chars val:'\n' span_id:65) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\ttest_commit "add-not-a-b" "ONE" "AAA" &&\n' span_id:67) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial add-not-a-b initial >actual &&\n' span_id: 68 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:69) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file add A, B (same)' span_id:76))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:81) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:82) (Token id:Id.Lit_Chars val:'\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\ttest_commit "add-a-b-same-A" "ONE" "AAA" &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\ttest_commit "add-a-b-same-B" "ONE" "AAA" &&\n' span_id:87) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial add-a-b-same-A add-a-b-same-B >actual &&\n' span_id: 88 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:89) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file add A, B (different)' span_id:96))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:101) (Token id:Id.Lit_Chars val:'added in both\n' span_id:102) (Token id: Id.Lit_Chars val: ' our 100644 43d5a8ed6ef6c00ff775008633f95787d088285d ONE\n' span_id: 103 ) (Token id: Id.Lit_Chars val: ' their 100644 ba629238ca89489f2b350e196ca445e09d8bb834 ONE\n' span_id: 104 ) (Token id:Id.Lit_Chars val:'@@ -1 +1,5 @@\n' span_id:105) (Token id:Id.Lit_Chars val:'+<<<<<<< .our\n' span_id:106) (Token id:Id.Lit_Chars val:' AAA\n' span_id:107) (Token id:Id.Lit_Chars val:'+=======\n' span_id:108) (Token id:Id.Lit_Chars val:'+BBB\n' span_id:109) (Token id:Id.Lit_Chars val:'+>>>>>>> .their\n' span_id:110) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:111) (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\ttest_commit "add-a-b-diff-A" "ONE" "AAA" &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\ttest_commit "add-a-b-diff-B" "ONE" "BBB" &&\n' span_id:116) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial add-a-b-diff-A add-a-b-diff-B >actual &&\n' span_id: 117 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:118) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file change A, !B' span_id:125))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:129) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:130) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:131) (Token id:Id.Lit_Chars val:'\n' span_id:132) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-not-b" "initial-file" "BBB" &&\n' span_id:134) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial change-a-not-b initial >actual &&\n' span_id: 135 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:136) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file change !A, B' span_id:143))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:147) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:148) (Token id:Id.Lit_Chars val:'merged\n' span_id:149) (Token id: Id.Lit_Chars val: ' result 100644 ba629238ca89489f2b350e196ca445e09d8bb834 initial-file\n' span_id: 150 ) (Token id: Id.Lit_Chars val: ' our 100644 e79c5e8f964493290a409888d5413a737e8e5dd5 initial-file\n' span_id: 151 ) (Token id:Id.Lit_Chars val:'@@ -1 +1 @@\n' span_id:152) (Token id:Id.Lit_Chars val:'-initial\n' span_id:153) (Token id:Id.Lit_Chars val:'+BBB\n' span_id:154) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:155) (Token id:Id.Lit_Chars val:'\n' span_id:156) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:157) (Token id: Id.Lit_Chars val: '\ttest_commit "change-not-a-b" "initial-file" "BBB" &&\n' span_id: 158 ) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial initial change-not-a-b >actual &&\n' span_id: 159 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:160) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file change A, B (same)' span_id:167))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:171) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:172) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:173) (Token id:Id.Lit_Chars val:'\n' span_id:174) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:175) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-b-same-A" "initial-file" "AAA" &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-b-same-B" "initial-file" "AAA" &&\n' span_id:178) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial change-a-b-same-A change-a-b-same-B >actual &&\n' span_id: 179 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:180) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file change A, B (different)' span_id:187))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:191) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:192) (Token id:Id.Lit_Chars val:'changed in both\n' span_id:193) (Token id: Id.Lit_Chars val: ' base 100644 e79c5e8f964493290a409888d5413a737e8e5dd5 initial-file\n' span_id: 194 ) (Token id: Id.Lit_Chars val: ' our 100644 43d5a8ed6ef6c00ff775008633f95787d088285d initial-file\n' span_id: 195 ) (Token id: Id.Lit_Chars val: ' their 100644 ba629238ca89489f2b350e196ca445e09d8bb834 initial-file\n' span_id: 196 ) (Token id:Id.Lit_Chars val:'@@ -1 +1,5 @@\n' span_id:197) (Token id:Id.Lit_Chars val:'+<<<<<<< .our\n' span_id:198) (Token id:Id.Lit_Chars val:' AAA\n' span_id:199) (Token id:Id.Lit_Chars val:'+=======\n' span_id:200) (Token id:Id.Lit_Chars val:'+BBB\n' span_id:201) (Token id:Id.Lit_Chars val:'+>>>>>>> .their\n' span_id:202) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:203) (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-b-diff-A" "initial-file" "AAA" &&\n' span_id:206) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:207) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-b-diff-B" "initial-file" "BBB" &&\n' span_id:208) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial change-a-b-diff-A change-a-b-diff-B >actual &&\n' span_id: 209 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:210) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file change A, B (mixed)' span_id:217))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:221) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:222) (Token id:Id.Lit_Chars val:'changed in both\n' span_id:223) (Token id: Id.Lit_Chars val: ' base 100644 f4f1f998c7776568c4ff38f516d77fef9399b5a7 ONE\n' span_id: 224 ) (Token id: Id.Lit_Chars val: ' our 100644 af14c2c3475337c73759d561ef70b59e5c731176 ONE\n' span_id: 225 ) (Token id: Id.Lit_Chars val: ' their 100644 372d761493f524d44d59bd24700c3bdf914c973c ONE\n' span_id: 226 ) (Token id:Id.Lit_Chars val:'@@ -7,7 +7,11 @@\n' span_id:227) (Token id:Id.Lit_Chars val:' AAA\n' span_id:228) (Token id:Id.Lit_Chars val:' AAA\n' span_id:229) (Token id:Id.Lit_Chars val:' AAA\n' span_id:230) (Token id:Id.Lit_Chars val:'+<<<<<<< .our\n' span_id:231) (Token id:Id.Lit_Chars val:' BBB\n' span_id:232) (Token id:Id.Lit_Chars val:'+=======\n' span_id:233) (Token id:Id.Lit_Chars val:'+CCC\n' span_id:234) (Token id:Id.Lit_Chars val:'+>>>>>>> .their\n' span_id:235) (Token id:Id.Lit_Chars val:' AAA\n' span_id:236) (Token id:Id.Lit_Chars val:' AAA\n' span_id:237) (Token id:Id.Lit_Chars val:' AAA\n' span_id:238) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:239) (Token id:Id.Lit_Chars val:'\n' span_id:240) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:241) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-b-mix-base" "ONE" "\n' span_id:242) (Token id:Id.Lit_Chars val:'AAA\n' span_id:243) (Token id:Id.Lit_Chars val:'AAA\n' span_id:244) (Token id:Id.Lit_Chars val:'AAA\n' span_id:245) (Token id:Id.Lit_Chars val:'AAA\n' span_id:246) (Token id:Id.Lit_Chars val:'AAA\n' span_id:247) (Token id:Id.Lit_Chars val:'AAA\n' span_id:248) (Token id:Id.Lit_Chars val:'AAA\n' span_id:249) (Token id:Id.Lit_Chars val:'AAA\n' span_id:250) (Token id:Id.Lit_Chars val:'AAA\n' span_id:251) (Token id:Id.Lit_Chars val:'AAA\n' span_id:252) (Token id:Id.Lit_Chars val:'AAA\n' span_id:253) (Token id:Id.Lit_Chars val:'AAA\n' span_id:254) (Token id:Id.Lit_Chars val:'AAA\n' span_id:255) (Token id:Id.Lit_Chars val:'AAA\n' span_id:256) (Token id:Id.Lit_Chars val:'AAA" &&\n' span_id:257) (Token id: Id.Lit_Chars val: '\ttest_commit "change-a-b-mix-A" "ONE" \\\n' span_id: 258 ) (Token id: Id.Lit_Chars val: '\t\t"$(sed -e "1{s/AAA/BBB/;}" -e "10{s/AAA/BBB/;}" <ONE)" &&\n' span_id: 259 ) (Token id:Id.Lit_Chars val:'\tgit reset --hard change-a-b-mix-base &&\n' span_id:260) (Token id: Id.Lit_Chars val: '\ttest_commit "change-a-b-mix-B" "ONE" \\\n' span_id: 261 ) (Token id: Id.Lit_Chars val: '\t\t"$(sed -e "1{s/AAA/BBB/;}" -e "10{s/AAA/CCC/;}" <ONE)" &&\n' span_id: 262 ) (Token id: Id.Lit_Chars val: '\tgit merge-tree change-a-b-mix-base change-a-b-mix-A change-a-b-mix-B \\\n' span_id: 263 ) (Token id:Id.Lit_Chars val:'\t\t>actual &&\n' span_id:264) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:265) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file remove A, !B' span_id:272))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:276) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:277) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:278) (Token id:Id.Lit_Chars val:'\n' span_id:279) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:280) (Token id:Id.Lit_Chars val:'\ttest_commit "rm-a-not-b-base" "ONE" "AAA" &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\tgit rm ONE &&\n' span_id:282) (Token id:Id.Lit_Chars val:'\tgit commit -m "rm-a-not-b" &&\n' span_id:283) (Token id:Id.Lit_Chars val:'\tgit tag "rm-a-not-b" &&\n' span_id:284) (Token id: Id.Lit_Chars val: '\tgit merge-tree rm-a-not-b-base rm-a-not-b rm-a-not-b-base >actual &&\n' span_id: 285 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:286) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file remove !A, B' span_id:293))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:297) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:298) (Token id:Id.Lit_Chars val:'removed in remote\n' span_id:299) (Token id: Id.Lit_Chars val: ' base 100644 43d5a8ed6ef6c00ff775008633f95787d088285d ONE\n' span_id: 300 ) (Token id: Id.Lit_Chars val: ' our 100644 43d5a8ed6ef6c00ff775008633f95787d088285d ONE\n' span_id: 301 ) (Token id:Id.Lit_Chars val:'@@ -1 +0,0 @@\n' span_id:302) (Token id:Id.Lit_Chars val:'-AAA\n' span_id:303) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:304) (Token id:Id.Lit_Chars val:'\n' span_id:305) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:306) (Token id:Id.Lit_Chars val:'\ttest_commit "rm-not-a-b-base" "ONE" "AAA" &&\n' span_id:307) (Token id:Id.Lit_Chars val:'\tgit rm ONE &&\n' span_id:308) (Token id:Id.Lit_Chars val:'\tgit commit -m "rm-not-a-b" &&\n' span_id:309) (Token id:Id.Lit_Chars val:'\tgit tag "rm-not-a-b" &&\n' span_id:310) (Token id: Id.Lit_Chars val: '\tgit merge-tree rm-a-not-b-base rm-a-not-b-base rm-a-not-b >actual &&\n' span_id: 311 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:312) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file remove A, B (same)' span_id:319))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:323) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:324) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:325) (Token id:Id.Lit_Chars val:'\n' span_id:326) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:327) (Token id:Id.Lit_Chars val:'\ttest_commit "rm-a-b-base" "ONE" "AAA" &&\n' span_id:328) (Token id:Id.Lit_Chars val:'\tgit rm ONE &&\n' span_id:329) (Token id:Id.Lit_Chars val:'\tgit commit -m "rm-a-b" &&\n' span_id:330) (Token id:Id.Lit_Chars val:'\tgit tag "rm-a-b" &&\n' span_id:331) (Token id:Id.Lit_Chars val:'\tgit merge-tree rm-a-b-base rm-a-b rm-a-b >actual &&\n' span_id:332) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:333) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file change A, remove B' span_id:340))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:344) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:345) (Token id:Id.Lit_Chars val:'removed in remote\n' span_id:346) (Token id: Id.Lit_Chars val: ' base 100644 43d5a8ed6ef6c00ff775008633f95787d088285d ONE\n' span_id: 347 ) (Token id: Id.Lit_Chars val: ' our 100644 ba629238ca89489f2b350e196ca445e09d8bb834 ONE\n' span_id: 348 ) (Token id:Id.Lit_Chars val:'@@ -1 +0,0 @@\n' span_id:349) (Token id:Id.Lit_Chars val:'-BBB\n' span_id:350) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:351) (Token id:Id.Lit_Chars val:'\n' span_id:352) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:353) (Token id:Id.Lit_Chars val:'\ttest_commit "change-a-rm-b-base" "ONE" "AAA" &&\n' span_id:354) (Token id: Id.Lit_Chars val: '\ttest_commit "change-a-rm-b-A" "ONE" "BBB" &&\n' span_id: 355 ) (Token id:Id.Lit_Chars val:'\tgit reset --hard change-a-rm-b-base &&\n' span_id:356) (Token id:Id.Lit_Chars val:'\tgit rm ONE &&\n' span_id:357) (Token id:Id.Lit_Chars val:'\tgit commit -m "change-a-rm-b-B" &&\n' span_id:358) (Token id:Id.Lit_Chars val:'\tgit tag "change-a-rm-b-B" &&\n' span_id:359) (Token id: Id.Lit_Chars val: '\tgit merge-tree change-a-rm-b-base change-a-rm-b-A change-a-rm-b-B \\\n' span_id: 360 ) (Token id:Id.Lit_Chars val:'\t\t>actual &&\n' span_id:361) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:362) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'file remove A, change B' span_id:369))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:373) (Token id:Id.Lit_Chars val:'\tcat >expected <<\\EXPECTED &&\n' span_id:374) (Token id:Id.Lit_Chars val:'removed in local\n' span_id:375) (Token id: Id.Lit_Chars val: ' base 100644 43d5a8ed6ef6c00ff775008633f95787d088285d ONE\n' span_id: 376 ) (Token id: Id.Lit_Chars val: ' their 100644 ba629238ca89489f2b350e196ca445e09d8bb834 ONE\n' span_id: 377 ) (Token id:Id.Lit_Chars val:'EXPECTED\n' span_id:378) (Token id:Id.Lit_Chars val:'\n' span_id:379) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:380) (Token id:Id.Lit_Chars val:'\ttest_commit "rm-a-change-b-base" "ONE" "AAA" &&\n' span_id:381) (Token id:Id.Lit_Chars val:'\n' span_id:382) (Token id:Id.Lit_Chars val:'\tgit rm ONE &&\n' span_id:383) (Token id:Id.Lit_Chars val:'\tgit commit -m "rm-a-change-b-A" &&\n' span_id:384) (Token id:Id.Lit_Chars val:'\tgit tag "rm-a-change-b-A" &&\n' span_id:385) (Token id: Id.Lit_Chars val: '\tgit reset --hard rm-a-change-b-base &&\n' span_id: 386 ) (Token id:Id.Lit_Chars val:'\ttest_commit "rm-a-change-b-B" "ONE" "BBB" &&\n' span_id:387) (Token id: Id.Lit_Chars val: '\tgit merge-tree rm-a-change-b-base rm-a-change-b-A rm-a-change-b-B \\\n' span_id: 388 ) (Token id:Id.Lit_Chars val:'\t\t>actual &&\n' span_id:389) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:390) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'tree add A, B (same)' span_id:397))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:401) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:402) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:403) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:404) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:405) (Token id: Id.Lit_Chars val: '\ttest_commit "add sub/file" "sub/file" "file" add-tree-A &&\n' span_id: 406 ) (Token id:Id.Lit_Chars val:'\tgit merge-tree initial add-tree-A add-tree-A >actual &&\n' span_id:407) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:408) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'tree add A, B (different)' span_id:415))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:419) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:420) (Token id:Id.Lit_Chars val:'\tadded in both\n' span_id:421) (Token id: Id.Lit_Chars val: '\t our 100644 43d5a8ed6ef6c00ff775008633f95787d088285d sub/file\n' span_id: 422 ) (Token id: Id.Lit_Chars val: '\t their 100644 ba629238ca89489f2b350e196ca445e09d8bb834 sub/file\n' span_id: 423 ) (Token id:Id.Lit_Chars val:'\t@@ -1 +1,5 @@\n' span_id:424) (Token id:Id.Lit_Chars val:'\t+<<<<<<< .our\n' span_id:425) (Token id:Id.Lit_Chars val:'\t AAA\n' span_id:426) (Token id:Id.Lit_Chars val:'\t+=======\n' span_id:427) (Token id:Id.Lit_Chars val:'\t+BBB\n' span_id:428) (Token id:Id.Lit_Chars val:'\t+>>>>>>> .their\n' span_id:429) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:430) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:431) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:432) (Token id: Id.Lit_Chars val: '\ttest_commit "add sub/file" "sub/file" "AAA" add-tree-a-b-A &&\n' span_id: 433 ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:434) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:435) (Token id: Id.Lit_Chars val: '\ttest_commit "add sub/file" "sub/file" "BBB" add-tree-a-b-B &&\n' span_id: 436 ) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial add-tree-a-b-A add-tree-a-b-B >actual &&\n' span_id: 437 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:438) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'tree unchanged A, removed B' span_id:445))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:449) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:450) (Token id:Id.Lit_Chars val:'\tremoved in remote\n' span_id:451) (Token id: Id.Lit_Chars val: '\t base 100644 43d5a8ed6ef6c00ff775008633f95787d088285d sub/file\n' span_id: 452 ) (Token id: Id.Lit_Chars val: '\t our 100644 43d5a8ed6ef6c00ff775008633f95787d088285d sub/file\n' span_id: 453 ) (Token id:Id.Lit_Chars val:'\t@@ -1 +0,0 @@\n' span_id:454) (Token id:Id.Lit_Chars val:'\t-AAA\n' span_id:455) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:456) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:457) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:458) (Token id: Id.Lit_Chars val: '\ttest_commit "add sub/file" "sub/file" "AAA" tree-remove-b-initial &&\n' span_id: 459 ) (Token id:Id.Lit_Chars val:'\tgit rm sub/file &&\n' span_id:460) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:461) (Token id:Id.Lit_Chars val:'\tgit commit -m "remove sub/file" &&\n' span_id:462) (Token id:Id.Lit_Chars val:'\tgit tag tree-remove-b-B &&\n' span_id:463) (Token id: Id.Lit_Chars val: '\tgit merge-tree tree-remove-b-initial tree-remove-b-initial tree-remove-b-B >actual &&\n' span_id: 464 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:465) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'turn file to tree' span_id:472))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:476) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:477) (Token id:Id.Lit_Chars val:'\trm initial-file &&\n' span_id:478) (Token id:Id.Lit_Chars val:'\tmkdir initial-file &&\n' span_id:479) (Token id: Id.Lit_Chars val: '\ttest_commit "turn-file-to-tree" "initial-file/ONE" "CCC" &&\n' span_id: 480 ) (Token id: Id.Lit_Chars val: '\tgit merge-tree initial initial turn-file-to-tree >actual &&\n' span_id: 481 ) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:482) (Token id:Id.Lit_Chars val:'\tadded in remote\n' span_id:483) (Token id: Id.Lit_Chars val: '\t their 100644 43aa4fdec31eb92e1fdc2f0ce6ea9ddb7c32bcf7 initial-file/ONE\n' span_id: 484 ) (Token id:Id.Lit_Chars val:'\t@@ -0,0 +1 @@\n' span_id:485) (Token id:Id.Lit_Chars val:'\t+CCC\n' span_id:486) (Token id:Id.Lit_Chars val:'\tremoved in remote\n' span_id:487) (Token id: Id.Lit_Chars val: '\t base 100644 e79c5e8f964493290a409888d5413a737e8e5dd5 initial-file\n' span_id: 488 ) (Token id: Id.Lit_Chars val: '\t our 100644 e79c5e8f964493290a409888d5413a737e8e5dd5 initial-file\n' span_id: 489 ) (Token id:Id.Lit_Chars val:'\t@@ -1 +0,0 @@\n' span_id:490) (Token id:Id.Lit_Chars val:'\t-initial\n' span_id:491) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:492) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:493) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'turn tree to file' span_id:500))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:504) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:505) (Token id:Id.Lit_Chars val:'\tmkdir dir &&\n' span_id:506) (Token id: Id.Lit_Chars val: '\ttest_commit "add-tree" "dir/path" "AAA" &&\n' span_id: 507 ) (Token id:Id.Lit_Chars val:'\ttest_commit "add-another-tree" "dir/another" "BBB" &&\n' span_id:508) (Token id:Id.Lit_Chars val:'\trm -fr dir &&\n' span_id:509) (Token id:Id.Lit_Chars val:'\ttest_commit "make-file" "dir" "CCC" &&\n' span_id:510) (Token id: Id.Lit_Chars val: '\tgit merge-tree add-tree add-another-tree make-file >actual &&\n' span_id: 511 ) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:512) (Token id:Id.Lit_Chars val:'\tremoved in remote\n' span_id:513) (Token id: Id.Lit_Chars val: '\t base 100644 43d5a8ed6ef6c00ff775008633f95787d088285d dir/path\n' span_id: 514 ) (Token id: Id.Lit_Chars val: '\t our 100644 43d5a8ed6ef6c00ff775008633f95787d088285d dir/path\n' span_id: 515 ) (Token id:Id.Lit_Chars val:'\t@@ -1 +0,0 @@\n' span_id:516) (Token id:Id.Lit_Chars val:'\t-AAA\n' span_id:517) (Token id:Id.Lit_Chars val:'\tadded in remote\n' span_id:518) (Token id: Id.Lit_Chars val: '\t their 100644 43aa4fdec31eb92e1fdc2f0ce6ea9ddb7c32bcf7 dir\n' span_id: 519 ) (Token id:Id.Lit_Chars val:'\t@@ -0,0 +1 @@\n' span_id:520) (Token id:Id.Lit_Chars val:'\t+CCC\n' span_id:521) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:522) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:523) ) } ) (C {(test_done)}) ] )