* [PATCH 3/3] t0027: Add repoMIX and LF_nul
@ 2015-04-15 17:01 Torsten Bögershausen
2015-04-15 17:36 ` Johannes Schindelin
0 siblings, 1 reply; 4+ messages in thread
From: Torsten Bögershausen @ 2015-04-15 17:01 UTC (permalink / raw)
To: git; +Cc: tboegi
"new safer autocrlf handling":
Check if eols are converted at commit, which have CR (or CLLF) in the repo
(technically speaking in the index)
Add a test-file repoMIX with mixed line-endings.
Check the warnings when converting LF->CRLF or CRLF->LF
checkout_files():
Checking out CRLF_nul and checking eol coversion does not
make much sense (CRLF will stay CRLF).
Use the file LF_nul instead: It is handled a binary in "auto" modes, and when
declared as text the LF should be replaced with CRLF
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
---
t/t0027-auto-crlf.sh | 155 ++++++++++++++++++++++++++++-----------------------
1 file changed, 84 insertions(+), 71 deletions(-)
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
index 59dfe02..7b85ffb 100755
--- a/t/t0027-auto-crlf.sh
+++ b/t/t0027-auto-crlf.sh
@@ -71,12 +71,21 @@ commit_check_warn () {
attr=$2
lfname=$3
crlfname=$4
- lfmixcrlf=$5
- lfmixcr=$6
- crlfnul=$7
- create_gitattributes "$attr" &&
+ repoMIX=$5
+ lfmixcrlf=$6
+ lfmixcr=$7
+ crlfnul=$8
pfx=crlf_${crlf}_attr_${attr}
- for f in LF CRLF LF_mix_CR CRLF_mix_LF CRLF_nul
+ # Special handling for repoMIX: It should already be in the repo
+ # with CRLF
+ f=repoMIX
+ fname=${pfx}_$f.txt
+ echo >.gitattributes &&
+ cp $f $fname &&
+ git -c core.autocrlf=false add $fname 2>"${pfx}_$f.err" &&
+ git commit -m "repoMIX" &&
+ create_gitattributes "$attr" &&
+ for f in LF CRLF repoMIX LF_mix_CR CRLF_mix_LF LF_nul CRLF_nul
do
fname=${pfx}_$f.txt &&
cp $f $fname &&
@@ -120,7 +129,7 @@ checkout_files () {
git config core.autocrlf $crlf &&
pfx=eol_${eol}_crlf_${crlf}_attr_${attr}_ &&
src=crlf_false_attr__ &&
- for f in LF CRLF LF_mix_CR CRLF_mix_LF CRLF_nul
+ for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul
do
rm $src$f.txt &&
if test -z "$eol"; then
@@ -142,8 +151,8 @@ checkout_files () {
test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_mix_CR" "
compare_ws_file $pfx $lfmixcr ${src}LF_mix_CR.txt
"
- test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF_nul" "
- compare_ws_file $pfx $crlfnul ${src}CRLF_nul.txt
+ test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_nul" "
+ compare_ws_file $pfx $crlfnul ${src}LF_nul.txt
"
}
@@ -155,6 +164,7 @@ test_expect_success 'setup master' '
git commit -m "add .gitattributes" "" &&
printf "line1\nline2\nline3" >LF &&
printf "line1\r\nline2\r\nline3" >CRLF &&
+ printf "line1\r\nline2\nline3" >repoMIX &&
printf "line1\r\nline2\nline3" >CRLF_mix_LF &&
printf "line1\nline2\rline3" >LF_mix_CR &&
printf "line1\r\nline2\rline3" >CRLF_mix_CR &&
@@ -178,40 +188,41 @@ WCL=CRLF_LF
WMIX=CRLF_LF
fi
+# attr LF CRLF repoMIX CRLFmixLF LFmixCR CRLFNUL
test_expect_success 'commit files empty attr' '
- commit_check_warn false "" "" "" "" "" "" &&
- commit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "" "" &&
- commit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "" ""
+ commit_check_warn false "" "" "" "" "" "" "" &&
+ commit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" "" &&
+ commit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "CRLF_LF" "" ""
'
test_expect_success 'commit files attr=auto' '
- commit_check_warn false "auto" "$WLC" "$WCL" "$WMIX" "" "" &&
- commit_check_warn true "auto" "LF_CRLF" "" "LF_CRLF" "" "" &&
- commit_check_warn input "auto" "" "CRLF_LF" "CRLF_LF" "" ""
+ commit_check_warn false "auto" "$WLC" "$WCL" "$WMIX" "$WMIX" "" "" &&
+ commit_check_warn true "auto" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" "" &&
+ commit_check_warn input "auto" "" "CRLF_LF" "CRLF_LF" "CRLF_LF" "" ""
'
test_expect_success 'commit files attr=text' '
- commit_check_warn false "text" "$WLC" "$WCL" "$WMIX" "$WLC" "$WCL" &&
- commit_check_warn true "text" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&
- commit_check_warn input "text" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"
+ commit_check_warn false "text" "$WLC" "$WCL" "$WMIX" "$WMIX" "$WLC" "$WCL" &&
+ commit_check_warn true "text" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "LF_CRLF" "" &&
+ commit_check_warn input "text" "" "CRLF_LF" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"
'
test_expect_success 'commit files attr=-text' '
- commit_check_warn false "-text" "" "" "" "" "" &&
- commit_check_warn true "-text" "" "" "" "" "" &&
- commit_check_warn input "-text" "" "" "" "" ""
+ commit_check_warn false "-text" "" "" "" "" "" "" &&
+ commit_check_warn true "-text" "" "" "" "" "" "" &&
+ commit_check_warn input "-text" "" "" "" "" "" ""
'
test_expect_success 'commit files attr=lf' '
- commit_check_warn false "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&
- commit_check_warn true "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&
- commit_check_warn input "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"
+ commit_check_warn false "lf" "" "CRLF_LF" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&
+ commit_check_warn true "lf" "" "CRLF_LF" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&
+ commit_check_warn input "lf" "" "CRLF_LF" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"
'
test_expect_success 'commit files attr=crlf' '
- commit_check_warn false "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&
- commit_check_warn true "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&
- commit_check_warn input "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" ""
+ commit_check_warn false "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "LF_CRLF" "" &&
+ commit_check_warn true "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "LF_CRLF" "" &&
+ commit_check_warn input "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "LF_CRLF" ""
'
test_expect_success 'create files cleanup' '
@@ -270,74 +281,76 @@ then
MIX_CRLF_LF=CRLF
MIX_LF_CR=CRLF_mix_CR
NL=CRLF
+LFNUL=CRLF_nul
else
MIX_CRLF_LF=CRLF_mix_LF
MIX_LF_CR=LF_mix_CR
NL=LF
+LFNUL=LF_nul
fi
export CRLF_MIX_LF_CR MIX NL
-checkout_files lf false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf input "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf false "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul
-checkout_files lf input "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf false "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
+checkout_files lf false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf false "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files lf input "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf false "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files lf input "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files lf input "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
+checkout_files lf input "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf input "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files lf input "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files lf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files lf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files lf input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files crlf false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files crlf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files crlf false "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul
-checkout_files crlf true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul
+checkout_files crlf false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files crlf true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files crlf false "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files crlf true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
checkout_files crlf false "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files crlf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files crlf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files crlf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files crlf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
+checkout_files crlf false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files crlf true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files crlf false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files crlf true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files crlf false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files crlf true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files "" false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" input "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR CRLF_nul
-checkout_files "" true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul
-checkout_files "" input "auto" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR CRLF_nul
+checkout_files "" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" input "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
+checkout_files "" true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files "" input "auto" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
checkout_files "" true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files "" input "text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files "" input "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
+checkout_files "" input "text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" input "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files "" input "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files "" false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files "" true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files "" input "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files native false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files native true "" CRLF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files native false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR CRLF_nul
-checkout_files native true "auto" CRLF CRLF CRLF LF_mix_CR CRLF_nul
-checkout_files native false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR CRLF_nul
+checkout_files native false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files native true "" CRLF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files native false "auto" $NL CRLF $MIX_CRLF_LF LF_mix_CR LF_nul
+checkout_files native true "auto" CRLF CRLF CRLF LF_mix_CR LF_nul
+checkout_files native false "text" $NL CRLF $MIX_CRLF_LF $MIX_LF_CR $LFNUL
checkout_files native true "text" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
-checkout_files native false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files native true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files native false "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
-checkout_files native true "lf" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul
+checkout_files native false "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files native true "-text" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files native false "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+checkout_files native true "lf" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files native false "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
checkout_files native true "crlf" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
--
2.2.0.rc1.790.ge19fcd2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 3/3] t0027: Add repoMIX and LF_nul
2015-04-15 17:01 [PATCH 3/3] t0027: Add repoMIX and LF_nul Torsten Bögershausen
@ 2015-04-15 17:36 ` Johannes Schindelin
2015-04-15 19:58 ` Torsten Bögershausen
0 siblings, 1 reply; 4+ messages in thread
From: Johannes Schindelin @ 2015-04-15 17:36 UTC (permalink / raw)
To: Torsten Bögershausen; +Cc: git, git-owner
Hi Torsten,
On 2015-04-15 19:01, Torsten Bögershausen wrote:
> t/t0027-auto-crlf.sh | 155 ++++++++++++++++++++++++++++-----------------------
I fear that we duplicated work here, due to me working on Git for Windows 2.x and you sending mails to the non-Windows mailing list.
For what it is worth, my patches can be viewed here:
https://github.com/git-for-windows/git/commits/master/t/t0027-auto-crlf.sh
And in particular this one is important:
https://github.com/git-for-windows/git/commit/c07cae2576cd3ed193bb766959f226a8fac5aa17
It would maybe be a good idea to work together?
Ciao,
Johannes
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 3/3] t0027: Add repoMIX and LF_nul
2015-04-15 17:36 ` Johannes Schindelin
@ 2015-04-15 19:58 ` Torsten Bögershausen
2015-04-16 12:52 ` Johannes Schindelin
0 siblings, 1 reply; 4+ messages in thread
From: Torsten Bögershausen @ 2015-04-15 19:58 UTC (permalink / raw)
To: Johannes Schindelin, Torsten Bögershausen; +Cc: git, git-owner
On 2015-04-15 19.36, Johannes Schindelin wrote:
> Hi Torsten,
>
> On 2015-04-15 19:01, Torsten Bögershausen wrote:
>
>> t/t0027-auto-crlf.sh | 155 ++++++++++++++++++++++++++++-----------------------
>
> I fear that we duplicated work here, due to me working on Git for Windows 2.x and you sending mails to the non-Windows mailing list.
>
Good to here that this TC is alive, sorry for the breakage.
> For what it is worth, my patches can be viewed here:
>
> https://github.com/git-for-windows/git/commits/master/t/t0027-auto-crlf.sh
>
> And in particular this one is important:
>
> https://github.com/git-for-windows/git/commit/c07cae2576cd3ed193bb766959f226a8fac5aa17
>
Thanks for the info and the fix.
> It would maybe be a good idea to work together?
Yes, I try to be up-to-date with Git for Windows, but missed to follow this very patch.
Do you plan to send it to git.git ?
>
> Ciao,
> Johannes
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 3/3] t0027: Add repoMIX and LF_nul
2015-04-15 19:58 ` Torsten Bögershausen
@ 2015-04-16 12:52 ` Johannes Schindelin
0 siblings, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2015-04-16 12:52 UTC (permalink / raw)
To: Torsten Bögershausen; +Cc: git, git-owner
Hi Torsten,
On 2015-04-15 21:58, Torsten Bögershausen wrote:
> Yes, I try to be up-to-date with Git for Windows, but missed to follow
> this very patch.
> Do you plan to send it to git.git ?
I did plan to send it to this mailing list (together with the other 23 branches we accumulated in all those years, at a mild pace, of course), but *after* releasing Git for Windows 2.x (which is now imminent).
If you could cherry-pick my fix into your series, that would be splendid! However, if you feel that you came up with a better patch, please do not hesitate to drop my patch (I'd like to know about that, too, of course).
Thanks!
Johannes
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-04-16 12:52 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-15 17:01 [PATCH 3/3] t0027: Add repoMIX and LF_nul Torsten Bögershausen
2015-04-15 17:36 ` Johannes Schindelin
2015-04-15 19:58 ` Torsten Bögershausen
2015-04-16 12:52 ` Johannes Schindelin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.