t6038 (merge.renormalize): check that it can be turned off
[gitweb.git] / t / t6038-merge-text-auto.sh
index a7ea4b626b553d5563207b95fbd10afdae47002c..52d0dc4bb8f80393c79935f9c951b5323287e41c 100755 (executable)
@@ -15,7 +15,6 @@ test_description='CRLF merge conflict across text=auto change
 . ./test-lib.sh
 
 test_expect_success setup '
-       git config merge.renormalize true &&
        git config core.autocrlf false &&
 
        echo first line | append_cr >file &&
@@ -59,12 +58,19 @@ test_expect_success setup '
        git checkout master
 '
 
+test_expect_success 'set up fuzz_conflict() helper' '
+       fuzz_conflict() {
+               sed -e "s/^\([<>=]......\) .*/\1/" "$@"
+       }
+'
+
 test_expect_success 'Merge after setting text=auto' '
        cat <<-\EOF >expected &&
        first line
        same line
        EOF
 
+       git config merge.renormalize true &&
        git rm -fr . &&
        rm -f .gitattributes &&
        git reset --hard a &&
@@ -78,6 +84,7 @@ test_expect_success 'Merge addition of text=auto' '
        same line
        EOF
 
+       git config merge.renormalize true &&
        git rm -fr . &&
        rm -f .gitattributes &&
        git reset --hard b &&
@@ -85,12 +92,51 @@ test_expect_success 'Merge addition of text=auto' '
        test_cmp expected file
 '
 
+test_expect_success 'Detect CRLF/LF conflict after setting text=auto' '
+       q_to_cr <<-\EOF >expected &&
+       <<<<<<<
+       first line
+       same line
+       =======
+       first lineQ
+       same lineQ
+       >>>>>>>
+       EOF
+
+       git config merge.renormalize false &&
+       rm -f .gitattributes &&
+       git reset --hard a &&
+       test_must_fail git merge b &&
+       fuzz_conflict file >file.fuzzy &&
+       test_cmp expected file.fuzzy
+'
+
+test_expect_success 'Detect LF/CRLF conflict from addition of text=auto' '
+       q_to_cr <<-\EOF >expected &&
+       <<<<<<<
+       first lineQ
+       same lineQ
+       =======
+       first line
+       same line
+       >>>>>>>
+       EOF
+
+       git config merge.renormalize false &&
+       rm -f .gitattributes &&
+       git reset --hard b &&
+       test_must_fail git merge a &&
+       fuzz_conflict file >file.fuzzy &&
+       test_cmp expected file.fuzzy
+'
+
 test_expect_failure 'checkout -m after setting text=auto' '
        cat <<-\EOF >expected &&
        first line
        same line
        EOF
 
+       git config merge.renormalize true &&
        git rm -fr . &&
        rm -f .gitattributes &&
        git reset --hard initial &&
@@ -105,6 +151,7 @@ test_expect_failure 'checkout -m addition of text=auto' '
        same line
        EOF
 
+       git config merge.renormalize true &&
        git rm -fr . &&
        rm -f .gitattributes file &&
        git reset --hard initial &&
@@ -119,6 +166,7 @@ test_expect_failure 'cherry-pick patch from after text=auto was added' '
        same line
        EOF
 
+       git config merge.renormalize true &&
        git rm -fr . &&
        git reset --hard b &&
        test_must_fail git cherry-pick a >err 2>&1 &&