From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Steffen Prohaska <prohaska@zib.de>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, Dmitry Potapov <dpotapov@gmail.com>
Subject: Re: [PATCH] Respect crlf attribute in "git add" even if core.autocrlf has not been set
Date: Wed, 23 Jul 2008 11:02:08 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.1.00.0807231051200.2830@eeepc-johanness> (raw)
In-Reply-To: <719E03C0-E8C3-4C35-AE9C-9BD5A7BCDF03@zib.de>
Hi,
On Wed, 23 Jul 2008, Steffen Prohaska wrote:
> On Jul 23, 2008, at 3:31 AM, Johannes Schindelin wrote:
>
> >When a file's crlf attribute is explicitely set, it does not make sense
> >to ignore it when adding the file, just because the config variable
> >core.autocrlf has not been set.
>
> Your patch is not about core.autocrlf unset, but about
> core.autocrlf=false.
No, no, no!
It is about autocrlf _unset_, i.e. when the user was _not_ explicit!
> >The alternative would be risking to get CR/LF files into the repository
> >just because one user forgot to set core.autocrlf.
>
> Git could help the user *and* the maintainer of the repository if we
> chose core.autocrlf=input as the default on Unix.
NO!
The machinery behind core.autocrlf _does_ slow down Git, even if only by a
few percent. But with patch queues as maintainers of busy projects
encounter frequently, this makes a difference.
So no, I am _totally_ opposed to punishing Unix users for Windows' faults.
Totally.
> >diff --git a/convert.c b/convert.c
> >index 78efed8..d038d2f 100644
> >--- a/convert.c
> >+++ b/convert.c
> >@@ -126,7 +126,7 @@ static int crlf_to_git(const char *path, const char *src,
> >size_t len,
> > struct text_stat stats;
> > char *dst;
> >
> >- if ((action == CRLF_BINARY) || !auto_crlf || !len)
> >+ if ((action == CRLF_BINARY) || (!auto_crlf && action < 0) || !len)
>
> I think we should strictly follow the documentation, so this should read
>
> + if ((action == CRLF_BINARY) || (!auto_crlf && action != CRLF_INPUT) ||
> !len)
NO!
Your version would break action == CRLF_TEXT.
> >diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh
> >index 1be7446..0bb3e6f 100755
> >--- a/t/t0020-crlf.sh
> >+++ b/t/t0020-crlf.sh
> >@@ -436,4 +436,14 @@ test_expect_success 'invalid .gitattributes (must not
> >crash)' '
> >
> >'
> >
> >+test_expect_success 'attribute crlf is heeded even without core.autocrlf' '
> >+
> >+ echo "allcrlf crlf=input" > .gitattributes &&
> >+ git config --unset core.autocrlf &&
>
> You should set core.autocrlf explicitly to false:
>
> git config core.autocrlf false
But this is _not_ what I want! I want it to be _unset_. Yes, at the
moment, auto_crlf is initialized to 0. But I do not _care_ what it is
set. I want this test to succeed when the user did _not_ set autocrlf.
> Otherwise the test would pick up the user's global default.
It will not. We went to great pains not to pick up global defaults in the
test suite.
> ... and we should verify that we only treat crlf=input specially, but not
> "crlf".
Umm... Why? Why should a file marked "crlf=true" be allowed to be checked
in _with_ CRs?
Ciao,
Dscho
next prev parent reply other threads:[~2008-07-23 9:02 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-22 21:56 [PATCH] Respect crlf attribute even if core.autocrlf has not been set Johannes Schindelin
2008-07-22 23:11 ` Dmitry Potapov
2008-07-22 23:23 ` Johannes Schindelin
2008-07-23 0:14 ` Dmitry Potapov
2008-07-23 0:12 ` Junio C Hamano
2008-07-23 1:10 ` Johannes Schindelin
2008-07-23 1:31 ` [PATCH] Respect crlf attribute in "git add" " Johannes Schindelin
2008-07-23 5:49 ` Steffen Prohaska
2008-07-23 9:02 ` Johannes Schindelin [this message]
2008-07-23 11:40 ` Dmitry Potapov
2008-07-24 6:06 ` Steffen Prohaska
2008-07-24 12:39 ` Johannes Schindelin
2008-07-24 17:05 ` Dmitry Potapov
2008-07-24 14:09 ` Dmitry Potapov
2008-07-24 14:38 ` Johannes Schindelin
2008-07-24 14:52 ` Steffen Prohaska
2008-07-24 16:44 ` Avery Pennarun
2008-07-24 16:45 ` Johannes Schindelin
2008-07-24 20:44 ` Robin Rosenberg
2008-07-24 23:58 ` Johannes Schindelin
2008-07-23 17:07 ` [PATCH] Respect crlf attribute " Junio C Hamano
2008-07-23 17:22 ` Johannes Schindelin
2008-07-23 18:04 ` Joshua Jensen
2008-07-23 18:33 ` Avery Pennarun
2008-07-23 18:57 ` Johannes Schindelin
2008-07-23 19:20 ` Eyvind Bernhardsen
2008-07-23 19:44 ` Johannes Schindelin
2008-07-24 21:30 ` Eyvind Bernhardsen
2008-07-25 0:01 ` Johannes Schindelin
2008-07-25 12:30 ` Eyvind Bernhardsen
2008-07-25 14:01 ` Dmitry Potapov
2008-07-25 21:05 ` Eyvind Bernhardsen
2008-07-26 2:09 ` Johannes Schindelin
2008-07-29 19:11 ` Eyvind Bernhardsen
2008-07-29 13:46 ` Dmitry Potapov
2008-07-29 21:17 ` Eyvind Bernhardsen
2008-07-30 5:35 ` Steffen Prohaska
2008-07-30 18:33 ` Avery Pennarun
2008-07-30 19:25 ` Steffen Prohaska
2008-07-30 21:07 ` Avery Pennarun
2008-07-30 22:02 ` Dmitry Potapov
2008-07-30 22:14 ` Avery Pennarun
2008-08-03 16:54 ` Tarmigan
2008-08-03 17:33 ` Dmitry Potapov
2008-08-03 18:54 ` Tarmigan
2008-08-04 16:06 ` Dmitry Potapov
2008-07-30 21:45 ` Dmitry Potapov
2008-08-02 12:51 ` Eyvind Bernhardsen
2008-08-03 16:21 ` Dmitry Potapov
2008-07-23 19:22 ` Robin Rosenberg
2008-07-23 19:35 ` Junio C Hamano
2008-07-23 19:41 ` Johannes Schindelin
2008-07-23 19:33 ` Dmitry Potapov
2008-07-23 19:23 ` Junio C Hamano
2008-07-23 20:07 ` Johannes Schindelin
2008-07-24 16:53 ` Dmitry Potapov
2008-07-24 17:14 ` Johannes Schindelin
2008-07-24 17:55 ` Dmitry Potapov
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=alpine.DEB.1.00.0807231051200.2830@eeepc-johanness \
--to=johannes.schindelin@gmx.de \
--cc=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=prohaska@zib.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox