(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:'checkout -m -- <conflicted path>\n' span_id:6) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id: Id.Lit_Chars val: 'Ensures that checkout -m on a resolved file restores the conflicted file' span_id: 8 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\ttest_commit both.txt both.txt initial &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit branch topic &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\ttest_commit modified_in_master both.txt in_master &&\n' span_id:26) (Token id: Id.Lit_Chars val: '\ttest_commit added_in_master each.txt in_master &&\n' span_id: 27 ) (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:28) (Token id: Id.Lit_Chars val: '\ttest_commit modified_in_topic both.txt in_topic &&\n' span_id: 29 ) (Token id:Id.Lit_Chars val:'\ttest_commit added_in_topic each.txt in_topic\n' span_id:30) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git merge master' span_id:37))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:41) (Token id:Id.Lit_Chars val:' test_must_fail git merge master\n' span_id:42) ) } ) (command.ShFunction name: clean_branchnames body: (command.BraceGroup children: [ (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/^\\([<>]\\{5,\\}\\) .*$/\\1/' span_id:61))}) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-m restores 2-way conflicted+resolved file' span_id:70))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id:Id.Lit_Chars val:'\tcp each.txt each.txt.conflicted &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\techo resolved >each.txt &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tgit add each.txt &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit checkout -m -- each.txt &&\n' span_id:78) (Token id: Id.Lit_Chars val: '\tclean_branchnames <each.txt >each.txt.cleaned &&\n' span_id: 79 ) (Token id: Id.Lit_Chars val: '\tclean_branchnames <each.txt.conflicted >each.txt.conflicted.cleaned &&\n' span_id: 80 ) (Token id:Id.Lit_Chars val:'\ttest_cmp each.txt.conflicted.cleaned each.txt.cleaned\n' span_id:81) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-m restores 3-way conflicted+resolved file' span_id:88))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:92) (Token id:Id.Lit_Chars val:'\tcp both.txt both.txt.conflicted &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\techo resolved >both.txt &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\tgit add both.txt &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\tgit checkout -m -- both.txt &&\n' span_id:96) (Token id: Id.Lit_Chars val: '\tclean_branchnames <both.txt >both.txt.cleaned &&\n' span_id: 97 ) (Token id: Id.Lit_Chars val: '\tclean_branchnames <both.txt.conflicted >both.txt.conflicted.cleaned &&\n' span_id: 98 ) (Token id:Id.Lit_Chars val:'\ttest_cmp both.txt.conflicted.cleaned both.txt.cleaned\n' span_id:99) ) } ) (C {(test_done)}) ] )