git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Potapov <dpotapov@gmail.com>
To: Steffen Prohaska <prohaska@zib.de>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Junio C Hamano <gitster@pobox.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] Respect crlf attribute in "git add" even if core.autocrlf has not been set
Date: Thu, 24 Jul 2008 18:09:59 +0400	[thread overview]
Message-ID: <20080724140959.GU2925@dpotapov.dyndns.org> (raw)
In-Reply-To: <FCAEAB20-750E-47B9-B58D-9BB0CB1EEAFF@zib.de>

On Thu, Jul 24, 2008 at 08:06:29AM +0200, Steffen Prohaska wrote:
> 
> I have however a related question:
> 
> Dscho,
> Is the following your use case?
> 
>  "I am the maintainer of this project.  I know that this project needs
>   crlf conversion, because it is a cross-platform project.  Therefore,
>   I want to force crlf conversion for this specific project, even if
>   the user did not configure core.autocrlf=input on Unix."

I suspect that most problems with crlf is caused by Windows users who
have core.autocrlf=false for whatever reason (I suspect without a good
reason in most cases). But perhaps having core.autocrlf=input as default
on Unix and Mac will be better than the current core.autocrlf=false.

> Maybe we could allow 'crlf=guess' in .gitattributes with the following
> documentation:

Please, no. It feels wrong to complicate crlf settings to workaround
incorrect user configuration. I don't think that many people really will
be able to benefit from that. In most cases, people end up with the
incorrect value autocrlf just because the documentation is complicated
and it is difficult to understand from it what autocrlf does.

So I believe the real solution is providing more reasonable defaults
for autocrlf and more clear and simple explanation, i.e. to have
something like in the introduction section describing how to set up
your own repository:

===
If you work on Windows, you are most likely use text files with CRLF
endings. To ensure that your line endings will be correctly represented
on other platforms, you should set core.autocrlf=true.

If you prefer to have LF endings in your text files, you may want to set
core.autocrlf=input to ensure that files with inconsistent end-of-lines
will not enter into your repository.

autocrlf conversion will automatically detect text files and convert
line endings accordingly to the specified settings. In very rare cases,
heuristic may be wrong[*], so you may want to specify what files should
bed considered as text and what as binary explicitly. You can do that by
setting the crlf attribute in .gitattributes, like this:

*.exe -crlf
*.c crlf

The above says that all files with the .exe extension should be treated
as binary and all files with the .c extension should treated as text.

[*] You do not have to worry too much about heuristic being wrong,
because you will be warned if conversion for a file is irreversible.
See core.safecrlf in linkgit:gitattributes[5] for more information.
===

We should not expect every users to read everything written in
gitattributes just to get autocrlf correctly.

Dmitry

  parent reply	other threads:[~2008-07-24 14:11 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
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 [this message]
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=20080724140959.GU2925@dpotapov.dyndns.org \
    --to=dpotapov@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --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;
as well as URLs for NNTP newsgroup(s).