Squashed 'third_party/git/' content from commit cb71568594
git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7
This commit is contained in:
commit
1b593e1ea4
3629 changed files with 1139935 additions and 0 deletions
212
t/t4048-diff-combined-binary.sh
Executable file
212
t/t4048-diff-combined-binary.sh
Executable file
|
|
@ -0,0 +1,212 @@
|
|||
#!/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 &&
|
||||
git checkout -b branch-binary HEAD^ &&
|
||||
echo threeQ3 | q_to_nul >binary &&
|
||||
git commit -a -m three &&
|
||||
test_must_fail git merge master &&
|
||||
echo resolvedQhooray | q_to_nul >binary &&
|
||||
git commit -a -m resolved
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --git a/binary b/binary
|
||||
index 7ea6ded..9563691 100644
|
||||
Binary files a/binary and b/binary differ
|
||||
resolved
|
||||
|
||||
diff --git a/binary b/binary
|
||||
index 6197570..9563691 100644
|
||||
Binary files a/binary and b/binary differ
|
||||
EOF
|
||||
test_expect_success 'diff -m indicates binary-ness' '
|
||||
git show --format=%s -m >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --combined binary
|
||||
index 7ea6ded,6197570..9563691
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff -c indicates binary-ness' '
|
||||
git show --format=%s -c >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --cc binary
|
||||
index 7ea6ded,6197570..9563691
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff --cc indicates binary-ness' '
|
||||
git show --format=%s --cc >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 &&
|
||||
git checkout -b branch-text HEAD^ &&
|
||||
test_commit three text &&
|
||||
test_must_fail git merge master &&
|
||||
test_commit resolved text &&
|
||||
echo text -diff >.gitattributes
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index 2bdf67a..2ab19ae 100644
|
||||
Binary files a/text and b/text differ
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index f719efd..2ab19ae 100644
|
||||
Binary files a/text and b/text differ
|
||||
EOF
|
||||
test_expect_success 'diff -m respects binary attribute' '
|
||||
git show --format=%s -m >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --combined text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff -c respects binary attribute' '
|
||||
git show --format=%s -c >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --cc text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff --cc respects binary attribute' '
|
||||
git show --format=%s --cc >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 <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index 2bdf67a..2ab19ae 100644
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@ -1 +1 @@
|
||||
-THREE
|
||||
+RESOLVED
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index f719efd..2ab19ae 100644
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@ -1 +1 @@
|
||||
-TWO
|
||||
+RESOLVED
|
||||
EOF
|
||||
test_expect_success 'diff -m respects textconv attribute' '
|
||||
git show --format=%s -m >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --combined text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
- THREE
|
||||
-TWO
|
||||
++RESOLVED
|
||||
EOF
|
||||
test_expect_success 'diff -c respects textconv attribute' '
|
||||
git show --format=%s -c >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
resolved
|
||||
|
||||
diff --cc text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
- THREE
|
||||
-TWO
|
||||
++RESOLVED
|
||||
EOF
|
||||
test_expect_success 'diff --cc respects textconv attribute' '
|
||||
git show --format=%s --cc >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
diff --combined text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
- three
|
||||
-two
|
||||
++resolved
|
||||
EOF
|
||||
test_expect_success 'diff-tree plumbing does not respect textconv' '
|
||||
git diff-tree HEAD -c -p >full &&
|
||||
tail -n +2 full >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
diff --cc text
|
||||
index 2bdf67a,f719efd..0000000
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,5 @@@
|
||||
++<<<<<<< HEAD
|
||||
+THREE
|
||||
++=======
|
||||
+ TWO
|
||||
++>>>>>>> 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue