(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: 'combined and merge diff handle binary files and textconv' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup binary merge conflict' span_id:17))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id:Id.Lit_Chars val:'\techo oneQ1 | q_to_nul >binary &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\tgit add binary &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\tgit commit -m one &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\techo twoQ2 | q_to_nul >binary &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -a -m two &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit checkout -b branch-binary HEAD^ &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\techo threeQ3 | q_to_nul >binary &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit commit -a -m three &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge master &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\techo resolvedQhooray | q_to_nul >binary &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tgit commit -a -m resolved\n' span_id:32) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:38) fd:-1 arg_word:{(expect)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:41) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:43))} here_end_span_id: 56 stdin_parts: [ ('resolved\n') ('\n') ('diff --git a/binary b/binary\n') ('index 7ea6ded..9563691 100644\n') ('Binary files a/binary and b/binary differ\n') ('resolved\n') ('\n') ('diff --git a/binary b/binary\n') ('index 6197570..9563691 100644\n') ('Binary files a/binary and b/binary differ\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff -m indicates binary-ness' span_id:60))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:64) (Token id:Id.Lit_Chars val:'\tgit show --format=%s -m >actual &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:66) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:72) fd:-1 arg_word:{(expect)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:75) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:77))} here_end_span_id: 85 stdin_parts: [ ('resolved\n') ('\n') ('diff --combined binary\n') ('index 7ea6ded,6197570..9563691\n') ('Binary files differ\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff -c indicates binary-ness' span_id:89))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) (Token id:Id.Lit_Chars val:'\tgit show --format=%s -c >actual &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:95) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:101) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:104) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:106))} here_end_span_id: 114 stdin_parts: [ ('resolved\n') ('\n') ('diff --cc binary\n') ('index 7ea6ded,6197570..9563691\n') ('Binary files differ\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff --cc indicates binary-ness' span_id:118))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:122) (Token id: Id.Lit_Chars val: '\tgit show --format=%s --cc >actual &&\n' span_id: 123 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:124) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup non-binary with binary attribute' span_id:131))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:135) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\ttest_commit one text &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\ttest_commit two text &&\n' span_id:138) (Token id:Id.Lit_Chars val:'\tgit checkout -b branch-text HEAD^ &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\ttest_commit three text &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge master &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\ttest_commit resolved text &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\techo text -diff >.gitattributes\n' span_id:143) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:149) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:152) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:154))} here_end_span_id: 167 stdin_parts: [ ('resolved\n') ('\n') ('diff --git a/text b/text\n') ('index 2bdf67a..2ab19ae 100644\n') ('Binary files a/text and b/text differ\n') ('resolved\n') ('\n') ('diff --git a/text b/text\n') ('index f719efd..2ab19ae 100644\n') ('Binary files a/text and b/text differ\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff -m respects binary attribute' span_id:171))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:175) (Token id:Id.Lit_Chars val:'\tgit show --format=%s -m >actual &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:177) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:183) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:186) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:188))} here_end_span_id: 196 stdin_parts: [ ('resolved\n') ('\n') ('diff --combined text\n') ('index 2bdf67a,f719efd..2ab19ae\n') ('Binary files differ\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff -c respects binary attribute' span_id:200))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\tgit show --format=%s -c >actual &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:206) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:212) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:215) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:217))} here_end_span_id: 225 stdin_parts: [ ('resolved\n') ('\n') ('diff --cc text\n') ('index 2bdf67a,f719efd..2ab19ae\n') ('Binary files differ\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff --cc respects binary attribute' span_id:229))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id: Id.Lit_Chars val: '\tgit show --format=%s --cc >actual &&\n' span_id: 234 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:235) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup textconv attribute' span_id:242))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:246) (Token id: Id.Lit_Chars val: '\techo "text diff=upcase" >.gitattributes &&\n' span_id: 247 ) (Token id:Id.Lit_Chars val:'\tgit config diff.upcase.textconv "tr a-z A-Z <"\n' span_id:248) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:254) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:257) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:259))} here_end_span_id: 280 stdin_parts: [ ('resolved\n') ('\n') ('diff --git a/text b/text\n') ('index 2bdf67a..2ab19ae 100644\n') ('--- a/text\n') ('+++ b/text\n') ('@@ -1 +1 @@\n') ('-THREE\n') ('+RESOLVED\n') ('resolved\n') ('\n') ('diff --git a/text b/text\n') ('index f719efd..2ab19ae 100644\n') ('--- a/text\n') ('+++ b/text\n') ('@@ -1 +1 @@\n') ('-TWO\n') ('+RESOLVED\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff -m respects textconv attribute' span_id:284))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:288) (Token id:Id.Lit_Chars val:'\tgit show --format=%s -m >actual &&\n' span_id:289) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:290) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:296) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:299) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:301))} here_end_span_id: 314 stdin_parts: [ ('resolved\n') ('\n') ('diff --combined text\n') ('index 2bdf67a,f719efd..2ab19ae\n') ('--- a/text\n') ('+++ b/text\n') ('@@@ -1,1 -1,1 +1,1 @@@\n') ('- THREE\n') (' -TWO\n') ('++RESOLVED\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff -c respects textconv attribute' span_id:318))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:322) (Token id:Id.Lit_Chars val:'\tgit show --format=%s -c >actual &&\n' span_id:323) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:324) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:330) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:333) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:335))} here_end_span_id: 348 stdin_parts: [ ('resolved\n') ('\n') ('diff --cc text\n') ('index 2bdf67a,f719efd..2ab19ae\n') ('--- a/text\n') ('+++ b/text\n') ('@@@ -1,1 -1,1 +1,1 @@@\n') ('- THREE\n') (' -TWO\n') ('++RESOLVED\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff --cc respects textconv attribute' span_id:352))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:356) (Token id: Id.Lit_Chars val: '\tgit show --format=%s --cc >actual &&\n' span_id: 357 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:358) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:364) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:367) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:369))} here_end_span_id: 380 stdin_parts: [ ('diff --combined text\n') ('index 2bdf67a,f719efd..2ab19ae\n') ('--- a/text\n') ('+++ b/text\n') ('@@@ -1,1 -1,1 +1,1 @@@\n') ('- three\n') (' -two\n') ('++resolved\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff-tree plumbing does not respect textconv' span_id:384))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:388) (Token id:Id.Lit_Chars val:'\tgit diff-tree HEAD -c -p >full &&\n' span_id:389) (Token id:Id.Lit_Chars val:'\ttail -n +2 full >actual &&\n' span_id:390) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:391) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:397) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:400) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:402))} here_end_span_id: 415 stdin_parts: [ ('diff --cc text\n') ('index 2bdf67a,f719efd..0000000\n') ('--- a/text\n') ('+++ b/text\n') ('@@@ -1,1 -1,1 +1,5 @@@\n') ('++<<<<<<< HEAD\n') (' +THREE\n') ('++=======\n') ('+ TWO\n') ('++>>>>>>> MASTER\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff --cc respects textconv on worktree file' span_id:419))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:423) (Token id:Id.Lit_Chars val:'\tgit reset --hard HEAD^ &&\n' span_id:424) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge master &&\n' span_id:425) (Token id:Id.Lit_Chars val:'\tgit diff >actual &&\n' span_id:426) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:427) ) } ) (C {(test_done)}) ] )