(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'combined and merge diff handle binary files and textconv'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <'setup binary merge conflict'>)} { (SQ <'\n'> <'\techo oneQ1 | q_to_nul >binary &&\n'> <'\tgit add binary &&\n'> <'\tgit commit -m one &&\n'> <'\techo twoQ2 | q_to_nul >binary &&\n'> <'\tgit commit -a -m two &&\n'> <'\tgit checkout -b branch-binary HEAD^ &&\n'> <'\techo threeQ3 | q_to_nul >binary &&\n'> <'\tgit commit -a -m three &&\n'> <'\ttest_must_fail git merge master &&\n'> <'\techo resolvedQhooray | q_to_nul >binary &&\n'> <'\tgit commit -a -m resolved\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff -m indicates binary-ness'>)} {(SQ <'\n'> <'\tgit show --format=%s -m >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 85 stdin_parts: [ <'resolved\n'> <'\n'> <'diff --combined binary\n'> <'index 7ea6ded,6197570..9563691\n'> <'Binary files differ\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff -c indicates binary-ness'>)} {(SQ <'\n'> <'\tgit show --format=%s -c >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 114 stdin_parts: [ <'resolved\n'> <'\n'> <'diff --cc binary\n'> <'index 7ea6ded,6197570..9563691\n'> <'Binary files differ\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff --cc indicates binary-ness'>)} {(SQ <'\n'> <'\tgit show --format=%s --cc >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (C {<test_expect_success>} {(SQ <'setup non-binary with binary attribute'>)} { (SQ <'\n'> <'\tgit checkout master &&\n'> <'\ttest_commit one text &&\n'> <'\ttest_commit two text &&\n'> <'\tgit checkout -b branch-text HEAD^ &&\n'> <'\ttest_commit three text &&\n'> <'\ttest_must_fail git merge master &&\n'> <'\ttest_commit resolved text &&\n'> <'\techo text -diff >.gitattributes\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff -m respects binary attribute'>)} {(SQ <'\n'> <'\tgit show --format=%s -m >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 196 stdin_parts: [ <'resolved\n'> <'\n'> <'diff --combined text\n'> <'index 2bdf67a,f719efd..2ab19ae\n'> <'Binary files differ\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff -c respects binary attribute'>)} {(SQ <'\n'> <'\tgit show --format=%s -c >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 225 stdin_parts: [ <'resolved\n'> <'\n'> <'diff --cc text\n'> <'index 2bdf67a,f719efd..2ab19ae\n'> <'Binary files differ\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff --cc respects binary attribute'>)} {(SQ <'\n'> <'\tgit show --format=%s --cc >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (C {<test_expect_success>} {(SQ <'setup textconv attribute'>)} { (SQ <'\n'> <'\techo "text diff=upcase" >.gitattributes &&\n'> <'\tgit config diff.upcase.textconv "tr a-z A-Z <"\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff -m respects textconv attribute'>)} {(SQ <'\n'> <'\tgit show --format=%s -m >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff -c respects textconv attribute'>)} {(SQ <'\n'> <'\tgit show --format=%s -c >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff --cc respects textconv attribute'>)} {(SQ <'\n'> <'\tgit show --format=%s --cc >actual &&\n'> <'\ttest_cmp expect actual\n'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff-tree plumbing does not respect textconv'>)} { (SQ <'\n'> <'\tgit diff-tree HEAD -c -p >full &&\n'> <'\ttail -n +2 full >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} 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'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <'diff --cc respects textconv on worktree file'>)} { (SQ <'\n'> <'\tgit reset --hard HEAD^ &&\n'> <'\ttest_must_fail git merge master &&\n'> <'\tgit diff >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {<test_done>}) ] )