#!/bin/sh test_description='combined and merge diff handle binary files and textconv' . ./test-lib.sh test_expect_success 'setup binary merge conflict' ' echo oneQ1 | q_to_nul >binary && git add binary && git commit -m one && echo twoQ2 | q_to_nul >binary && git commit -a -m two && two=$(git rev-parse --short HEAD:binary) && git checkout -b branch-binary HEAD^ && echo threeQ3 | q_to_nul >binary && git commit -a -m three && three=$(git rev-parse --short HEAD:binary) && test_must_fail git merge master && echo resolvedQhooray | q_to_nul >binary && git commit -a -m resolved && res=$(git rev-parse --short HEAD:binary) ' cat >expect <actual && test_cmp expect actual ' cat >expect <actual && test_cmp expect actual ' cat >expect <actual && test_cmp expect actual ' test_expect_success 'setup non-binary with binary attribute' ' git checkout master && test_commit one text && test_commit two text && two=$(git rev-parse --short HEAD:text) && git checkout -b branch-text HEAD^ && test_commit three text && three=$(git rev-parse --short HEAD:text) && test_must_fail git merge master && test_commit resolved text && res=$(git rev-parse --short HEAD:text) && echo text -diff >.gitattributes ' cat >expect <actual && test_cmp expect actual ' cat >expect <actual && test_cmp expect actual ' cat >expect <actual && test_cmp expect actual ' test_expect_success 'setup textconv attribute' ' echo "text diff=upcase" >.gitattributes && git config diff.upcase.textconv "tr a-z A-Z <" ' cat >expect <actual && test_cmp expect actual ' cat >expect <actual && test_cmp expect actual ' cat >expect <actual && test_cmp expect actual ' cat >expect <full && tail -n +2 full >actual && test_cmp expect actual ' cat >expect <>>>>>> MASTER EOF test_expect_success 'diff --cc respects textconv on worktree file' ' git reset --hard HEAD^ && test_must_fail git merge master && git diff >actual && test_cmp expect actual ' test_done