blob: cdcafcdff724e2c13ee056fb59e915a5371ec13c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#!/bin/sh
test_description='CRLF conversion'
TEST_PASSES_SANITIZE_LEAK=true
. ./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_expect_success NATIVE_CRLF 'eol native is crlf' '
rm -rf native_eol && mkdir native_eol &&
(
cd native_eol &&
printf "*.txt text\n" >.gitattributes &&
printf "one\r\ntwo\r\nthree\r\n" >filedos.txt &&
printf "one\ntwo\nthree\n" >fileunix.txt &&
git init &&
git config core.autocrlf false &&
git config core.eol native &&
git add filedos.txt fileunix.txt &&
git commit -m "first" &&
rm file*.txt &&
git reset --hard HEAD &&
has_cr filedos.txt &&
has_cr fileunix.txt
)
'
test_done
|