(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:'Two way merge with read-tree -m -u $H $M\n' span_id:15) (Token id:Id.Lit_Chars val:'\n' span_id:16) (Token id: Id.Lit_Chars val: 'This is identical to t1001, but uses -u to update the work tree as well.\n' span_id: 17 ) (Token id:Id.Lit_Chars val:'\n' span_id:18) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-read-tree.sh)}) (command.ShFunction name: compare_change body: (command.BraceGroup children: [ (command.Simple words: [ {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'1{/^diff --git /d;}' span_id:51))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'2{/^index /d;}' span_id:59))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'/^--- /d; /^+++ /d; /^@@ /d;' span_id:67))} {(-e)} { (SQ (Token id: Id.Lit_Chars val: 's/^\\(.[0-7][0-7][0-7][0-7][0-7][0-7]\\) ' span_id: 75 ) ) (DQ ($ Id.VSub_DollarName '$_x40')) (SQ (Token id:Id.Lit_Chars val:' /\\1 X /' span_id:81)) } {(DQ ($ Id.VSub_Number '$1'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:43) fd: -1 arg_word: {(current)} ) ] ) (C {(test_cmp)} {(expected)} {(current)}) ] ) ) (command.ShFunction name: check_cache_at body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:clean_if_empty) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:107) command_list: (command.CommandList children: [(C {(git)} {(diff-files)} {(--)} {(DQ ($ Id.VSub_Number '$1'))})] ) ) } spids: [106] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$clean_if_empty'))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(echo)} {(DQ ($ Id.VSub_Number '$1') (': clean'))})] spids: [129 131 140 -1] ) (case_arm pat_list: [{(Id.Lit_QMark '?') (Id.Lit_Star '*')}] action: [(C {(echo)} {(DQ ($ Id.VSub_Number '$1') (': dirty'))})] spids: [143 145 154 -1] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$2') (',') ($ Id.VSub_DollarName '$clean_if_empty'))} arms: [ (case_arm pat_list: [{(clean) (Id.Lit_Comma ',')}] action: [(C {(Id.Lit_Other ':')})] spids: [171 173 177 -1] ) (case_arm pat_list: [{(clean) (Id.Lit_Comma ',') (Id.Lit_QMark '?') (Id.Lit_Star '*')}] action: [(C {(false)})] spids: [180 184 188 -1] ) (case_arm pat_list: [{(dirty) (Id.Lit_Comma ',')}] action: [(C {(false)})] spids: [191 193 197 -1] ) (case_arm pat_list: [{(dirty) (Id.Lit_Comma ',') (Id.Lit_QMark '?') (Id.Lit_Star '*')}] action: [(C {(Id.Lit_Other ':')})] spids: [200 204 208 -1] ) ] ) ] ) ) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'echo frotz >frotz &&\n' span_id:225) (Token id:Id.Lit_Chars val:' echo nitfol >nitfol &&\n' span_id:226) (Token id:Id.Lit_Chars val:' echo bozbar >bozbar &&\n' span_id:227) (Token id:Id.Lit_Chars val:' echo rezrov >rezrov &&\n' span_id:228) (Token id:Id.Lit_Chars val:' git update-index --add nitfol bozbar rezrov &&\n' span_id:229) (Token id:Id.Lit_Chars val:' treeH=$(git write-tree) &&\n' span_id:230) (Token id:Id.Lit_Chars val:' echo treeH $treeH &&\n' span_id:231) (Token id:Id.Lit_Chars val:' git ls-tree $treeH &&\n' span_id:232) (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id:Id.Lit_Chars val:' echo gnusto >bozbar &&\n' span_id:234) (Token id: Id.Lit_Chars val: ' git update-index --add frotz bozbar --force-remove rezrov &&\n' span_id: 235 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >M.out &&\n' span_id:236) (Token id:Id.Lit_Chars val:' treeM=$(git write-tree) &&\n' span_id:237) (Token id:Id.Lit_Chars val:' echo treeM $treeM &&\n' span_id:238) (Token id:Id.Lit_Chars val:' git ls-tree $treeM &&\n' span_id:239) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >M.sum &&\n' span_id:240) (Token id:Id.Lit_Chars val:' git diff-tree $treeH $treeM' span_id:241) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'1, 2, 3 - no carry forward' span_id:250))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 256 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:257) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 258 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >1-3.out &&\n' span_id:259) (Token id:Id.Lit_Chars val:' cmp M.out 1-3.out &&\n' span_id:260) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >actual3.sum &&\n' span_id:261) (Token id:Id.Lit_Chars val:' cmp M.sum actual3.sum &&\n' span_id:262) (Token id:Id.Lit_Chars val:' check_cache_at bozbar clean &&\n' span_id:263) (Token id:Id.Lit_Chars val:' check_cache_at frotz clean &&\n' span_id:264) (Token id:Id.Lit_Chars val:' check_cache_at nitfol clean' span_id:265) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'4 - carry forward local addition.' span_id:274))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 280 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:281) (Token id: Id.Lit_Chars val: ' echo "+100644 X 0\tyomin" >expected &&\n' span_id: 282 ) (Token id:Id.Lit_Chars val:' echo yomin >yomin &&\n' span_id:283) (Token id:Id.Lit_Chars val:' git update-index --add yomin &&\n' span_id:284) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id:285) (Token id:Id.Lit_Chars val:' git ls-files --stage >4.out &&\n' span_id:286) (Token id: Id.Lit_Chars val: ' test_might_fail git diff -U0 --no-index M.out 4.out >4diff.out &&\n' span_id: 287 ) (Token id:Id.Lit_Chars val:' compare_change 4diff.out expected &&\n' span_id:288) (Token id:Id.Lit_Chars val:' check_cache_at yomin clean &&\n' span_id:289) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >actual4.sum &&\n' span_id:290) (Token id:Id.Lit_Chars val:' cmp M.sum actual4.sum &&\n' span_id:291) (Token id:Id.Lit_Chars val:' echo yomin >yomin1 &&\n' span_id:292) (Token id:Id.Lit_Chars val:' diff yomin yomin1 &&\n' span_id:293) (Token id:Id.Lit_Chars val:' rm -f yomin1' span_id:294) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'5 - carry forward local addition.' span_id:303))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 309 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:310) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH &&\n' span_id: 311 ) (Token id:Id.Lit_Chars val:' echo yomin >yomin &&\n' span_id:312) (Token id:Id.Lit_Chars val:' git update-index --add yomin &&\n' span_id:313) (Token id:Id.Lit_Chars val:' echo yomin yomin >yomin &&\n' span_id:314) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 315 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >5.out &&\n' span_id:316) (Token id: Id.Lit_Chars val: ' test_might_fail git diff -U0 --no-index M.out 5.out >5diff.out &&\n' span_id: 317 ) (Token id:Id.Lit_Chars val:' compare_change 5diff.out expected &&\n' span_id:318) (Token id:Id.Lit_Chars val:' check_cache_at yomin dirty &&\n' span_id:319) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >actual5.sum &&\n' span_id:320) (Token id:Id.Lit_Chars val:' cmp M.sum actual5.sum &&\n' span_id:321) (Token id: Id.Lit_Chars val: ' : dirty index should have prevented -u from checking it out. &&\n' span_id: 322 ) (Token id:Id.Lit_Chars val:' echo yomin yomin >yomin1 &&\n' span_id:323) (Token id:Id.Lit_Chars val:' diff yomin yomin1 &&\n' span_id:324) (Token id:Id.Lit_Chars val:' rm -f yomin1' span_id:325) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'6 - local addition already has the same.' span_id:334))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 340 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:341) (Token id:Id.Lit_Chars val:' echo frotz >frotz &&\n' span_id:342) (Token id:Id.Lit_Chars val:' git update-index --add frotz &&\n' span_id:343) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 344 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >6.out &&\n' span_id:345) (Token id:Id.Lit_Chars val:' test_cmp M.out 6.out &&\n' span_id:346) (Token id:Id.Lit_Chars val:' check_cache_at frotz clean &&\n' span_id:347) (Token id: Id.Lit_Chars val: ' sum bozbar frotz nitfol >actual3.sum &&\n' span_id: 348 ) (Token id:Id.Lit_Chars val:' cmp M.sum actual3.sum &&\n' span_id:349) (Token id:Id.Lit_Chars val:' echo frotz >frotz1 &&\n' span_id:350) (Token id:Id.Lit_Chars val:' diff frotz frotz1 &&\n' span_id:351) (Token id:Id.Lit_Chars val:' rm -f frotz1' span_id:352) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'7 - local addition already has the same.' span_id:361))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 367 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:368) (Token id:Id.Lit_Chars val:' echo frotz >frotz &&\n' span_id:369) (Token id:Id.Lit_Chars val:' git update-index --add frotz &&\n' span_id:370) (Token id:Id.Lit_Chars val:' echo frotz frotz >frotz &&\n' span_id:371) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id:372) (Token id:Id.Lit_Chars val:' git ls-files --stage >7.out &&\n' span_id:373) (Token id:Id.Lit_Chars val:' test_cmp M.out 7.out &&\n' span_id:374) (Token id:Id.Lit_Chars val:' check_cache_at frotz dirty &&\n' span_id:375) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >actual7.sum &&\n' span_id:376) (Token id: Id.Lit_Chars val: ' if cmp M.sum actual7.sum; then false; else :; fi &&\n' span_id: 377 ) (Token id: Id.Lit_Chars val: ' : dirty index should have prevented -u from checking it out. &&\n' span_id: 378 ) (Token id:Id.Lit_Chars val:' echo frotz frotz >frotz1 &&\n' span_id:379) (Token id:Id.Lit_Chars val:' diff frotz frotz1 &&\n' span_id:380) (Token id:Id.Lit_Chars val:' rm -f frotz1' span_id:381) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'8 - conflicting addition.' span_id:390))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 396 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:397) (Token id:Id.Lit_Chars val:' echo frotz frotz >frotz &&\n' span_id:398) (Token id:Id.Lit_Chars val:' git update-index --add frotz &&\n' span_id:399) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 400 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'9 - conflicting addition.' span_id:409))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 415 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:416) (Token id:Id.Lit_Chars val:' echo frotz frotz >frotz &&\n' span_id:417) (Token id:Id.Lit_Chars val:' git update-index --add frotz &&\n' span_id:418) (Token id:Id.Lit_Chars val:' echo frotz >frotz &&\n' span_id:419) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 420 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'10 - path removed.' span_id:429))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 435 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:436) (Token id:Id.Lit_Chars val:' echo rezrov >rezrov &&\n' span_id:437) (Token id:Id.Lit_Chars val:' git update-index --add rezrov &&\n' span_id:438) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 439 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >10.out &&\n' span_id:440) (Token id:Id.Lit_Chars val:' cmp M.out 10.out &&\n' span_id:441) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >actual10.sum &&\n' span_id:442) (Token id:Id.Lit_Chars val:' cmp M.sum actual10.sum' span_id:443) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'11 - dirty path removed.' span_id:452))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 458 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:459) (Token id:Id.Lit_Chars val:' echo rezrov >rezrov &&\n' span_id:460) (Token id:Id.Lit_Chars val:' git update-index --add rezrov &&\n' span_id:461) (Token id:Id.Lit_Chars val:' echo rezrov rezrov >rezrov &&\n' span_id:462) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 463 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'12 - unmatching local changes being removed.' span_id:472))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 478 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:479) (Token id:Id.Lit_Chars val:' echo rezrov rezrov >rezrov &&\n' span_id:480) (Token id:Id.Lit_Chars val:' git update-index --add rezrov &&\n' span_id:481) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 482 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'13 - unmatching local changes being removed.' span_id:491))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 497 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:498) (Token id:Id.Lit_Chars val:' echo rezrov rezrov >rezrov &&\n' span_id:499) (Token id:Id.Lit_Chars val:' git update-index --add rezrov &&\n' span_id:500) (Token id:Id.Lit_Chars val:' echo rezrov >rezrov &&\n' span_id:501) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 502 ) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:508) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:511) fd: -1 here_begin: {(EOF)} here_end_span_id: 517 stdin_parts: [('-100644 X 0\tnitfol\n') ('+100644 X 0\tnitfol\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'14 - unchanged in two heads.' span_id:524))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 530 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:531) (Token id:Id.Lit_Chars val:' echo nitfol nitfol >nitfol &&\n' span_id:532) (Token id:Id.Lit_Chars val:' git update-index --add nitfol &&\n' span_id:533) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 534 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >14.out &&\n' span_id:535) (Token id: Id.Lit_Chars val: ' test_must_fail git diff -U0 --no-index M.out 14.out >14diff.out &&\n' span_id: 536 ) (Token id:Id.Lit_Chars val:' compare_change 14diff.out expected &&\n' span_id:537) (Token id: Id.Lit_Chars val: ' sum bozbar frotz >actual14.sum &&\n' span_id: 538 ) (Token id:Id.Lit_Chars val:' grep -v nitfol M.sum > expected14.sum &&\n' span_id:539) (Token id: Id.Lit_Chars val: ' cmp expected14.sum actual14.sum &&\n' span_id: 540 ) (Token id:Id.Lit_Chars val:' sum bozbar frotz nitfol >actual14a.sum &&\n' span_id:541) (Token id: Id.Lit_Chars val: ' if cmp M.sum actual14a.sum; then false; else :; fi &&\n' span_id: 542 ) (Token id:Id.Lit_Chars val:' check_cache_at nitfol clean &&\n' span_id:543) (Token id:Id.Lit_Chars val:' echo nitfol nitfol >nitfol1 &&\n' span_id:544) (Token id:Id.Lit_Chars val:' diff nitfol nitfol1 &&\n' span_id:545) (Token id:Id.Lit_Chars val:' rm -f nitfol1' span_id:546) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'15 - unchanged in two heads.' span_id:555))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 561 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:562) (Token id:Id.Lit_Chars val:' echo nitfol nitfol >nitfol &&\n' span_id:563) (Token id:Id.Lit_Chars val:' git update-index --add nitfol &&\n' span_id:564) (Token id: Id.Lit_Chars val: ' echo nitfol nitfol nitfol >nitfol &&\n' span_id: 565 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id:566) (Token id:Id.Lit_Chars val:' git ls-files --stage >15.out &&\n' span_id:567) (Token id: Id.Lit_Chars val: ' test_must_fail git diff -U0 --no-index M.out 15.out >15diff.out &&\n' span_id: 568 ) (Token id:Id.Lit_Chars val:' compare_change 15diff.out expected &&\n' span_id:569) (Token id:Id.Lit_Chars val:' check_cache_at nitfol dirty &&\n' span_id:570) (Token id:Id.Lit_Chars val:' sum bozbar frotz >actual15.sum &&\n' span_id:571) (Token id: Id.Lit_Chars val: ' grep -v nitfol M.sum > expected15.sum &&\n' span_id: 572 ) (Token id:Id.Lit_Chars val:' cmp expected15.sum actual15.sum &&\n' span_id:573) (Token id: Id.Lit_Chars val: ' sum bozbar frotz nitfol >actual15a.sum &&\n' span_id: 574 ) (Token id: Id.Lit_Chars val: ' if cmp M.sum actual15a.sum; then false; else :; fi &&\n' span_id: 575 ) (Token id:Id.Lit_Chars val:' echo nitfol nitfol nitfol >nitfol1 &&\n' span_id:576) (Token id:Id.Lit_Chars val:' diff nitfol nitfol1 &&\n' span_id:577) (Token id:Id.Lit_Chars val:' rm -f nitfol1' span_id:578) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'16 - conflicting local change.' span_id:587))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 593 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:594) (Token id:Id.Lit_Chars val:' echo bozbar bozbar >bozbar &&\n' span_id:595) (Token id:Id.Lit_Chars val:' git update-index --add bozbar &&\n' span_id:596) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 597 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'17 - conflicting local change.' span_id:606))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 612 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:613) (Token id:Id.Lit_Chars val:' echo bozbar bozbar >bozbar &&\n' span_id:614) (Token id:Id.Lit_Chars val:' git update-index --add bozbar &&\n' span_id:615) (Token id: Id.Lit_Chars val: ' echo bozbar bozbar bozbar >bozbar &&\n' span_id: 616 ) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 617 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'18 - local change already having a good result.' span_id:626))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 632 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:633) (Token id:Id.Lit_Chars val:' echo gnusto >bozbar &&\n' span_id:634) (Token id:Id.Lit_Chars val:' git update-index --add bozbar &&\n' span_id:635) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 636 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >18.out &&\n' span_id:637) (Token id:Id.Lit_Chars val:' test_cmp M.out 18.out &&\n' span_id:638) (Token id:Id.Lit_Chars val:' check_cache_at bozbar clean &&\n' span_id:639) (Token id: Id.Lit_Chars val: ' sum bozbar frotz nitfol >actual18.sum &&\n' span_id: 640 ) (Token id:Id.Lit_Chars val:' cmp M.sum actual18.sum' span_id:641) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '19 - local change already having a good result, further modified.' span_id: 650 ) ) } { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 656 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:657) (Token id:Id.Lit_Chars val:' echo gnusto >bozbar &&\n' span_id:658) (Token id:Id.Lit_Chars val:' git update-index --add bozbar &&\n' span_id:659) (Token id:Id.Lit_Chars val:' echo gnusto gnusto >bozbar &&\n' span_id:660) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id:661) (Token id:Id.Lit_Chars val:' git ls-files --stage >19.out &&\n' span_id:662) (Token id:Id.Lit_Chars val:' test_cmp M.out 19.out &&\n' span_id:663) (Token id:Id.Lit_Chars val:' check_cache_at bozbar dirty &&\n' span_id:664) (Token id:Id.Lit_Chars val:' sum frotz nitfol >actual19.sum &&\n' span_id:665) (Token id: Id.Lit_Chars val: ' grep -v bozbar M.sum > expected19.sum &&\n' span_id: 666 ) (Token id:Id.Lit_Chars val:' cmp expected19.sum actual19.sum &&\n' span_id:667) (Token id: Id.Lit_Chars val: ' sum bozbar frotz nitfol >actual19a.sum &&\n' span_id: 668 ) (Token id: Id.Lit_Chars val: ' if cmp M.sum actual19a.sum; then false; else :; fi &&\n' span_id: 669 ) (Token id:Id.Lit_Chars val:' echo gnusto gnusto >bozbar1 &&\n' span_id:670) (Token id:Id.Lit_Chars val:' diff bozbar bozbar1 &&\n' span_id:671) (Token id:Id.Lit_Chars val:' rm -f bozbar1' span_id:672) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'20 - no local change, use new tree.' span_id:681))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 687 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:688) (Token id:Id.Lit_Chars val:' echo bozbar >bozbar &&\n' span_id:689) (Token id:Id.Lit_Chars val:' git update-index --add bozbar &&\n' span_id:690) (Token id: Id.Lit_Chars val: ' read_tree_u_must_succeed -m -u $treeH $treeM &&\n' span_id: 691 ) (Token id:Id.Lit_Chars val:' git ls-files --stage >20.out &&\n' span_id:692) (Token id:Id.Lit_Chars val:' test_cmp M.out 20.out &&\n' span_id:693) (Token id:Id.Lit_Chars val:' check_cache_at bozbar clean &&\n' span_id:694) (Token id: Id.Lit_Chars val: ' sum bozbar frotz nitfol >actual20.sum &&\n' span_id: 695 ) (Token id:Id.Lit_Chars val:' cmp M.sum actual20.sum' span_id:696) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'21 - no local change, dirty cache.' span_id:705))} { (SQ (Token id: Id.Lit_Chars val: 'rm -f .git/index nitfol bozbar rezrov frotz &&\n' span_id: 711 ) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed --reset -u $treeH &&\n' span_id:712) (Token id:Id.Lit_Chars val:' echo bozbar >bozbar &&\n' span_id:713) (Token id:Id.Lit_Chars val:' git update-index --add bozbar &&\n' span_id:714) (Token id:Id.Lit_Chars val:' echo gnusto gnusto >bozbar &&\n' span_id:715) (Token id: Id.Lit_Chars val: ' if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi' span_id: 716 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'DF vs DF/DF case setup.' span_id:728))} { (SQ (Token id:Id.Lit_Chars val:'rm -f .git/index &&\n' span_id:734) (Token id:Id.Lit_Chars val:' echo DF >DF &&\n' span_id:735) (Token id:Id.Lit_Chars val:' git update-index --add DF &&\n' span_id:736) (Token id:Id.Lit_Chars val:' treeDF=$(git write-tree) &&\n' span_id:737) (Token id:Id.Lit_Chars val:' echo treeDF $treeDF &&\n' span_id:738) (Token id:Id.Lit_Chars val:' git ls-tree $treeDF &&\n' span_id:739) (Token id:Id.Lit_Chars val:'\n' span_id:740) (Token id:Id.Lit_Chars val:' rm -f DF &&\n' span_id:741) (Token id:Id.Lit_Chars val:' mkdir DF &&\n' span_id:742) (Token id:Id.Lit_Chars val:' echo DF/DF >DF/DF &&\n' span_id:743) (Token id:Id.Lit_Chars val:' git update-index --add --remove DF DF/DF &&\n' span_id:744) (Token id:Id.Lit_Chars val:' treeDFDF=$(git write-tree) &&\n' span_id:745) (Token id:Id.Lit_Chars val:' echo treeDFDF $treeDFDF &&\n' span_id:746) (Token id:Id.Lit_Chars val:' git ls-tree $treeDFDF &&\n' span_id:747) (Token id:Id.Lit_Chars val:' git ls-files --stage >DFDF.out' span_id:748) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'DF vs DF/DF case test.' span_id:757))} { (SQ (Token id:Id.Lit_Chars val:'rm -f .git/index &&\n' span_id:763) (Token id:Id.Lit_Chars val:' rm -fr DF &&\n' span_id:764) (Token id:Id.Lit_Chars val:' echo DF >DF &&\n' span_id:765) (Token id:Id.Lit_Chars val:' git update-index --add DF &&\n' span_id:766) (Token id:Id.Lit_Chars val:' read_tree_u_must_succeed -m -u $treeDF $treeDFDF &&\n' span_id:767) (Token id: Id.Lit_Chars val: ' git ls-files --stage >DFDFcheck.out &&\n' span_id: 768 ) (Token id:Id.Lit_Chars val:' test_cmp DFDF.out DFDFcheck.out &&\n' span_id:769) (Token id:Id.Lit_Chars val:' check_cache_at DF/DF clean' span_id:770) ) } ) (C {(test_done)}) ] )