Re: [PATCH] Respect crlf attribute even if core.autocrlf has not been set
- From
- Tarmigan <tarmigan+git@gmail.com>
- Date
- Aug 3, 2008, 16:54 UTC
- Message-ID
- <905315640808030954j7487a010p136c73406298ee29@mail.gmail.com>
- In-Reply-To
- <56C07978-D6C9-4219-8B92-6217BD33F6D4@zib.de>
On Wed, Jul 30, 2008 at 12:25 PM, Steffen Prohaska <prohaska@zib.de> wrote:
Show 21 quoted lines
> > On Jul 30, 2008, at 8:33 PM, Avery Pennarun wrote: > >> On 7/30/08, Steffen Prohaska <prohaska@zib.de> wrote: >> >>> What matters is that git gives you exactly back what you committed. It >>> does so with core.autocrlf=true, unless you check out with a different >>> setting for autocrlf. >> >> You can tell that this statement isn't quite true because if you have >> a file with mixed LF and CRLF line endings, which I do (thanks, >> Windows!) then CRLF->LF conversion is not a reversible operation. >> Interestingly LF->CRLF still is (because an LF->CRLF'd file will never >> have a bare LF, and on such a subset of files, CRLF->LF is >> reversible). >> >> Also note that core.autocrlf=input is *definitely* not a perfectly >> reversible operation. > > You are absolutely right. The files your describe are modified by git, > because they are "invalid" text files, as git defines them.
For all I care, git can consider the files as binary, but by *default* I should get back the same as I put in.
[For the rest of my rant, I am referring to the default configuration of autocrlf on windows]
> For git's > autocrlf mechanism to work, a text file is only allowed to have a > *single* type of line endings.
Git's autocrlf mechanism can be a nice feature. But by default it should not be on (even on windows) because it can modify screw up my files.
To be clear: when I say "git checkout" I want to get EXACTLY the same bits as went in when I did "git add" and "git commit". Any other default is broken.
> Otherwise it is broken and git tries to > help you fixing it.
My files were NOT broken when I put them into git. I committed them known good state. If msysgit changes them by *default* , then msysgit is broken.
IF you are working on a cross platform project, then setting autocrlf on windows might be nice. But having it on by *default* is broken.
Thanks, Tarmigan