diff options
author | Torsten Bögershausen <tboegi@web.de> | 2016-02-23 18:07:19 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-23 12:53:15 -0800 |
commit | 817a0c7968c1d7e0f574b6d07451445832f781aa (patch) | |
tree | a550bc41523ad300752b161eaad2c0b2d8508adb /t | |
parent | convert.c: simplify text_stat (diff) | |
download | tgif-817a0c7968c1d7e0f574b6d07451445832f781aa.tar.xz |
convert.c: correct attr_action()
df747b81 (convert.c: refactor crlf_action, 2016-02-10) introduced a
bug to "git ls-files --eol".
The "text" attribute was shown as "text eol=lf" or "text eol=crlf",
depending on core.autocrlf or core.eol.
Correct this and add test cases in t0027.
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t0027-auto-crlf.sh | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh index fc4c6287ab..f33962b178 100755 --- a/t/t0027-auto-crlf.sh +++ b/t/t0027-auto-crlf.sh @@ -159,6 +159,25 @@ stats_ascii () { } + +# contruct the attr/ returned by git ls-files --eol +# Take none (=empty), one or two args +attr_ascii () { + case $1,$2 in + -text,*) echo "-text" ;; + text,) echo "text" ;; + text,lf) echo "text eol=lf" ;; + text,crlf) echo "text eol=crlf" ;; + auto,) echo "text=auto" ;; + auto,lf) echo "text=auto eol=lf" ;; + auto,crlf) echo "text=auto eol=crlf" ;; + lf,) echo "text eol=lf" ;; + crlf,) echo "text eol=crlf" ;; + ,) echo "" ;; + *) echo invalid_attr "$1,$2" ;; + esac +} + check_files_in_repo () { crlf=$1 attr=$2 @@ -228,15 +247,15 @@ checkout_files () { test_expect_success "ls-files --eol attr=$attr $ident $aeol core.autocrlf=$crlf core.eol=$ceol" ' test_when_finished "rm expect actual" && sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) crlf_false_attr__LF_nul.txt + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt EOF git ls-files --eol crlf_false_attr__* | - sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" | + sed -e "s/ / /g" -e "s/ */ /g" | sort >actual && test_cmp expect actual ' |