diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-02-16 17:59:20 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-16 17:59:20 -0800 |
commit | 2ac4b4b2228f3ef996db7b07aea74c4b1a796f38 (patch) | |
tree | 245c7610f3a42fef9d63a883a281dc8e3efffe8a /t | |
parent | 990732609ce735c482e571ad95767edf1d693b41 (diff) | |
parent | 21e5ad50fc5e7277c74cfbb3cf6502468e840f86 (diff) | |
download | git-2ac4b4b2228f3ef996db7b07aea74c4b1a796f38.tar.gz |
Merge branch 'sp/safecrlf'
* sp/safecrlf:
safecrlf: Add mechanism to warn about irreversible crlf conversions
Diffstat (limited to 't')
-rwxr-xr-x | t/t0020-crlf.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh index 8b27aa892b..90ea081db6 100755 --- a/t/t0020-crlf.sh +++ b/t/t0020-crlf.sh @@ -8,6 +8,10 @@ q_to_nul () { tr Q '\000' } +q_to_cr () { + tr Q '\015' +} + append_cr () { sed -e 's/$/Q/' | tr Q '\015' } @@ -42,6 +46,60 @@ test_expect_success setup ' echo happy. ' +test_expect_success 'safecrlf: autocrlf=input, all CRLF' ' + + git config core.autocrlf input && + git config core.safecrlf true && + + for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && + ! git add allcrlf +' + +test_expect_success 'safecrlf: autocrlf=input, mixed LF/CRLF' ' + + git config core.autocrlf input && + git config core.safecrlf true && + + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && + ! git add mixed +' + +test_expect_success 'safecrlf: autocrlf=true, all LF' ' + + git config core.autocrlf true && + git config core.safecrlf true && + + for w in I am all LF; do echo $w; done >alllf && + ! git add alllf +' + +test_expect_success 'safecrlf: autocrlf=true mixed LF/CRLF' ' + + git config core.autocrlf true && + git config core.safecrlf true && + + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && + ! git add mixed +' + +test_expect_success 'safecrlf: print warning only once' ' + + git config core.autocrlf input && + git config core.safecrlf warn && + + for w in I am all LF; do echo $w; done >doublewarn && + git add doublewarn && + git commit -m "nowarn" && + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >doublewarn && + test $(git add doublewarn 2>&1 | grep "CRLF will be replaced by LF" | wc -l) = 1 +' + +test_expect_success 'switch off autocrlf, safecrlf, reset HEAD' ' + git config core.autocrlf false && + git config core.safecrlf false && + git reset --hard HEAD^ +' + test_expect_success 'update with autocrlf=input' ' rm -f tmp one dir/two three && |