git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Potapov <dpotapov@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH] Respect crlf attribute even if core.autocrlf has not been set
Date: Wed, 23 Jul 2008 03:11:53 +0400	[thread overview]
Message-ID: <20080722231153.GN2925@dpotapov.dyndns.org> (raw)
In-Reply-To: <alpine.DEB.1.00.0807222255450.8986@racer>

On Tue, Jul 22, 2008 at 10:56:04PM +0100, Johannes Schindelin wrote:
> 
> When a file's crlf attribute is explicitely set, it does not make sense
> to ignore it, just because the config variable core.autocrlf has not
> been set.

Hmm... About a week ago, I was about to propose the same change, but
after reading documentation and some thinking I was not able to convince
myself that this change would be the right thing to do.

First, let's look at what Git's documentation says:

===
`crlf`
^^^^^^

This attribute controls the line-ending convention.

Set::

	Setting the `crlf` attribute on a path is meant to mark
	the path as a "text" file.  'core.autocrlf' conversion
	takes place without guessing the content type by
	inspection.

<snip>

The `core.autocrlf` conversion
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If the configuration variable `core.autocrlf` is false, no
conversion is done.
===

So, my reading is that if I set the `crlf` attribute on some path, but
I have core.autocrlf=false, there will be no conversion.

And this can be used to mark text files in .gitattribute, which is
stored in the repository and thus it is shared among users with
different end-of-line ending, i.e. you can have something like this
in .gitattribute:

*.[ch] crlf
*.txt crlf

but on Unix, you have core.autocrlf=false, so no conversion is done,
while, on Windows, you set core.autocrlf=true, so you will have crlf
conversion without any guessing.

Now, I can agree with you that using the 'crlf' attribute to mark text
files may appear not very intuitive (you may expect that crlf means that
those files always need crlf conversion), but right now we do not have
any better way to mark text files and the using crlf in this role is
explicitly suggested by documentation. See above.


> 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' '

s/heeded/needed/


Dmitry

  reply	other threads:[~2008-07-22 23:13 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 [this message]
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
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=20080722231153.GN2925@dpotapov.dyndns.org \
    --to=dpotapov@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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;
as well as URLs for NNTP newsgroup(s).