You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.7 KiB
83 lines
1.7 KiB
#!/bin/sh |
|
|
|
test_description='CRLF conversion' |
|
|
|
. ./test-lib.sh |
|
|
|
has_cr() { |
|
tr '\015' Q <"$1" | grep Q >/dev/null |
|
} |
|
|
|
test_expect_success setup ' |
|
|
|
git config core.autocrlf false && |
|
|
|
echo "one text" > .gitattributes && |
|
|
|
for w in Hello world how are you; do echo $w; done >one && |
|
for w in I am very very fine thank you; do echo $w; done >two && |
|
git add . && |
|
|
|
git commit -m initial && |
|
|
|
one=$(git rev-parse HEAD:one) && |
|
two=$(git rev-parse HEAD:two) && |
|
|
|
echo happy. |
|
' |
|
|
|
test_expect_success 'eol=lf puts LFs in normalized file' ' |
|
|
|
rm -f .gitattributes tmp one two && |
|
git config core.eol lf && |
|
git read-tree --reset -u HEAD && |
|
|
|
! has_cr one && |
|
! has_cr two && |
|
onediff=$(git diff one) && |
|
twodiff=$(git diff two) && |
|
test -z "$onediff" && test -z "$twodiff" |
|
' |
|
|
|
test_expect_success 'eol=crlf puts CRLFs in normalized file' ' |
|
|
|
rm -f .gitattributes tmp one two && |
|
git config core.eol crlf && |
|
git read-tree --reset -u HEAD && |
|
|
|
has_cr one && |
|
! has_cr two && |
|
onediff=$(git diff one) && |
|
twodiff=$(git diff two) && |
|
test -z "$onediff" && test -z "$twodiff" |
|
' |
|
|
|
test_expect_success 'autocrlf=true overrides eol=lf' ' |
|
|
|
rm -f .gitattributes tmp one two && |
|
git config core.eol lf && |
|
git config core.autocrlf true && |
|
git read-tree --reset -u HEAD && |
|
|
|
has_cr one && |
|
has_cr two && |
|
onediff=$(git diff one) && |
|
twodiff=$(git diff two) && |
|
test -z "$onediff" && test -z "$twodiff" |
|
' |
|
|
|
test_expect_success 'autocrlf=true overrides unset eol' ' |
|
|
|
rm -f .gitattributes tmp one two && |
|
git config --unset-all core.eol && |
|
git config core.autocrlf true && |
|
git read-tree --reset -u HEAD && |
|
|
|
has_cr one && |
|
has_cr two && |
|
onediff=$(git diff one) && |
|
twodiff=$(git diff two) && |
|
test -z "$onediff" && test -z "$twodiff" |
|
' |
|
|
|
test_done
|
|
|