Re: [PATCH/RFC v2 1/4] Add "core.eolStyle" variable to control end-of-line conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 10, 2010 at 01:14:39PM +0200, Finn Arne Gangstad wrote:
> On Mon, May 10, 2010 at 12:13:58PM +0400, Dmitry Potapov wrote:
> > 
> > First of autocrlf is safe as it is implemented now.
> 
> No, it isn't. autocrlf as it is implemented now is destructive for any
> file that contains CRLF in the repo (it also gives dirty files after
> checkout and so on).

It may give dirty files in your working tree, but you do not lose any
information silently (as it happened with CVS), so it is safe in this
respect.

> 
> > I believe that the right solution is to be able to enable autocrlf but
> > only for those repositories that are marked as autocrlf compatible by
> > upstream.
> 
> Yes absolutely. But how do you tell autocrlf that the repository is
> compatible with it?  This is what is causing all the problems.

I suppose the original design assumption of autocrlf was that nearly all
repo should be compatible, because autocrlf is very good on detecting
text files. The problem with that is that many people want to store text
files with different endings, but they cannot be bothered to add a few
lines to .gitattributes. And while it is possible now to disable autocrlf
in any repo just by adding one line to .gitattributes:
* -crlf
but it is impossible to say the opposite.

So, I believe we should add "crlf=auto" as Eyvind proposed, as well as
to do eol conversion for files marked as "crlf" even if autocrlf is not
set as Linus suggested earlier. (Certainly, "eolconv" would be a better
name than "crlf", but maybe it is not the right time to replace it right
now).

> 
> Now, I propose to change autocrlf in such a way that it will work as
> before for all repositories that are "compatible with it", but _also_
> so that it works reasonably with those that aren't.

No, you proposed something different. You said that conversion for new
files would become optional. I don't know what exactly you mean by
optional, but it sounds incompatible with what we have now. In fact,
what I really like about autocrlf is that I do not need to think about
when I add a new file.

Moreover, you said "Convert LF-only text files to CRLF on checkout",
which raises two questions:

1. Where should information about what file was and what was not
converted be stored? (Storying it in the index can make the index
incompatible with old versions of Git).

2. How does it solve the problem with new files? (Just saying that
this conversation will be optional, does not it mean that it will be
right for this particular repo.)



Dmitry
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]