Git development
 help / color / mirror / Atom feed
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

  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