Re: [PATCH/RFC v1 1/1] New way to normalize the line endings
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 29, 2016, 19:15 UTC
- Message-ID
- <xmqqshqaf67c.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20161127162245.11757-1-tboegi@web.de>
tboegi@web.de writes:
Show 5 quoted lines
> From: Torsten Bögershausen <tboegi@web.de> > > Sincec commit 6523728499e7 'convert: unify the "auto" handling of CRLF' > the normalization instruction in Documentation/gitattributes.txt > doesn't work any more.
Aside from s/Sincec/Since/, the above made it sound as if the named commit was a regression that wants to be reverted, at least to my first reading. I think you want to be a bit more clear that we updated the world order and made it a better place with that commit, and examples in the doc need to be updated. To convince readers that, I think you would need to explain things like why the old way illustrated in the example was bad, and why the new way is better.
Show 22 quoted lines
> Update the documentation and add a test case. > > Reported by Kristian Adrup > https://github.com/git-for-windows/git/issues/954 > > Signed-off-by: Torsten Bögershausen <tboegi@web.de> > --- > Documentation/gitattributes.txt | 7 +++---- > t/t0025-crlf-auto.sh | 29 +++++++++++++++++++++++++++++ > 2 files changed, 32 insertions(+), 4 deletions(-) > > diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt > index 976243a..1f7529a 100644 > --- a/Documentation/gitattributes.txt > +++ b/Documentation/gitattributes.txt > @@ -227,11 +227,10 @@ From a clean working directory: > > ------------------------------------------------- > $ echo "* text=auto" >.gitattributes > -$ rm .git/index # Remove the index to force Git to > -$ git reset # re-scan the working directory > +$ git ls-files --eol | egrep "i/(crlf|mixed)" # find not normalized files
Does this step help anything? I do not see anything in the later steps that the user uses the finding from the output of this step to affect the end result.
> +$ rm .git/index # Remove the index to re-scan the working directory > +$ git add .
"A clean working directory" usually means all paths in the index match what's in the working tree but this requires a bit more than that, as this step ends up adding untracked and unignored paths.
Show 17 quoted lines
> $ git status # Show files that will be normalized > -$ git add -u > -$ git add .gitattributes > $ git commit -m "Introduce end-of-line normalization" > ------------------------------------------------- > > diff --git a/t/t0025-crlf-auto.sh b/t/t0025-crlf-auto.sh > index d0bee08..4ad4d02 100755 > --- a/t/t0025-crlf-auto.sh > +++ b/t/t0025-crlf-auto.sh > @@ -152,4 +152,33 @@ test_expect_success 'eol=crlf _does_ normalize binary files' ' > test -z "$LFwithNULdiff" > ' > > +test_expect_success 'prepare unnormalized' ' > + > + > .gitattributes &&
Lose SP before ".gitattributes".
Show 8 quoted lines
> + git config core.autocrlf false && > + printf "LINEONE\nLINETWO\r\n" >mixed && > + git add mixed .gitattributes && > + git commit -m "Add mixed" && > + git ls-files --eol | egrep "i/crlf" && > + git ls-files --eol | egrep "i/mixed" > + > +'
Any particular reason why we must use egrep not grep here?
Show 14 quoted lines
> + > +test_expect_success 'normalize unnormalized' ' > + echo "* text=auto" >.gitattributes && > + rm .git/index && > + git add . && > + git commit -m "Introduce end-of-line normalization" && > + git ls-files --eol | tr "\\t" " " | sort >act && > +cat >exp <<EOF && > +i/-text w/-text attr/text=auto LFwithNUL > +i/lf w/crlf attr/text=auto CRLFonly > +i/lf w/crlf attr/text=auto LFonly > +i/lf w/lf attr/text=auto .gitattributes > +i/lf w/mixed attr/text=auto mixed > +EOF
Use <<-EOF to indent the above 7 lines?
Show 5 quoted lines
> + test_cmp exp act > + > +' > + > test_done