From c8bae7493d2f2910b57f13ded012e86bdcfb0532 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 16:47:53 +0200 Subject: Adding upstream version 1:2.39.2. Signed-off-by: Daniel Baumann --- t/t4048-diff-combined-binary.sh | 221 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100755 t/t4048-diff-combined-binary.sh (limited to 't/t4048-diff-combined-binary.sh') diff --git a/t/t4048-diff-combined-binary.sh b/t/t4048-diff-combined-binary.sh new file mode 100755 index 0000000..0260cf6 --- /dev/null +++ b/t/t4048-diff-combined-binary.sh @@ -0,0 +1,221 @@ +#!/bin/sh + +test_description='combined and merge diff handle binary files and textconv' +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main +export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME + +. ./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 main && + 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 main && + 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 main && + 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 <>>>>>> MAIN +EOF +test_expect_success 'diff --cc respects textconv on worktree file' ' + git reset --hard HEAD^ && + test_must_fail git merge main && + git diff >actual && + test_cmp expect actual +' + +test_done -- cgit v1.2.3