refactor get_textconv to not require diff_filespec
[git/mjg.git] / t / t4048-diff-combined-binary.sh
bloba943994b07e458e6754b39de781ce7c277b60274
1 #!/bin/sh
3 test_description='combined and merge diff handle binary files and textconv'
4 . ./test-lib.sh
6 test_expect_success 'setup binary merge conflict' '
7 echo oneQ1 | q_to_nul >binary &&
8 git add binary &&
9 git commit -m one &&
10 echo twoQ2 | q_to_nul >binary &&
11 git commit -a -m two &&
12 git checkout -b branch-binary HEAD^ &&
13 echo threeQ3 | q_to_nul >binary &&
14 git commit -a -m three &&
15 test_must_fail git merge master &&
16 echo resolvedQhooray | q_to_nul >binary &&
17 git commit -a -m resolved
20 cat >expect <<'EOF'
21 resolved
23 diff --git a/binary b/binary
24 index 7ea6ded..9563691 100644
25 Binary files a/binary and b/binary differ
26 resolved
28 diff --git a/binary b/binary
29 index 6197570..9563691 100644
30 Binary files a/binary and b/binary differ
31 EOF
32 test_expect_success 'diff -m indicates binary-ness' '
33 git show --format=%s -m >actual &&
34 test_cmp expect actual
37 cat >expect <<'EOF'
38 resolved
40 diff --combined binary
41 index 7ea6ded,6197570..9563691
42 Binary files differ
43 EOF
44 test_expect_success 'diff -c indicates binary-ness' '
45 git show --format=%s -c >actual &&
46 test_cmp expect actual
49 cat >expect <<'EOF'
50 resolved
52 diff --cc binary
53 index 7ea6ded,6197570..9563691
54 Binary files differ
55 EOF
56 test_expect_success 'diff --cc indicates binary-ness' '
57 git show --format=%s --cc >actual &&
58 test_cmp expect actual
61 test_expect_success 'setup non-binary with binary attribute' '
62 git checkout master &&
63 test_commit one text &&
64 test_commit two text &&
65 git checkout -b branch-text HEAD^ &&
66 test_commit three text &&
67 test_must_fail git merge master &&
68 test_commit resolved text &&
69 echo text -diff >.gitattributes
72 cat >expect <<'EOF'
73 resolved
75 diff --git a/text b/text
76 index 2bdf67a..2ab19ae 100644
77 Binary files a/text and b/text differ
78 resolved
80 diff --git a/text b/text
81 index f719efd..2ab19ae 100644
82 Binary files a/text and b/text differ
83 EOF
84 test_expect_success 'diff -m respects binary attribute' '
85 git show --format=%s -m >actual &&
86 test_cmp expect actual
89 cat >expect <<'EOF'
90 resolved
92 diff --combined text
93 index 2bdf67a,f719efd..2ab19ae
94 Binary files differ
95 EOF
96 test_expect_success 'diff -c respects binary attribute' '
97 git show --format=%s -c >actual &&
98 test_cmp expect actual
101 cat >expect <<'EOF'
102 resolved
104 diff --cc text
105 index 2bdf67a,f719efd..2ab19ae
106 Binary files differ
108 test_expect_success 'diff --cc respects binary attribute' '
109 git show --format=%s --cc >actual &&
110 test_cmp expect actual
113 test_done