From: "Torsten Bögershausen" <tboegi@web.de>
To: git@vger.kernel.org
Cc: tboegi@web.de
Subject: [PATCH 3/3] t0027: Add repoMIX and LF_nul
Date: Wed, 15 Apr 2015 19:01:04 +0200 [thread overview]
Message-ID: <552E9950.9050008@web.de> (raw)
"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
next reply other threads:[~2015-04-15 17:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-15 17:01 Torsten Bögershausen [this message]
2015-04-15 17:36 ` [PATCH 3/3] t0027: Add repoMIX and LF_nul Johannes Schindelin
2015-04-15 19:58 ` Torsten Bögershausen
2015-04-16 12:52 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=552E9950.9050008@web.de \
--to=tboegi@web.de \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.