git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [BUG] attribute "eol" with "crlf"

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 16, 2011, 22:17 UTC
Message-ID
<7vehw4go0v.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CAN0XMOL674Hw_LctTC+8NNqA84Of6dMjdKT0SU+DWMG7EYShYQ@mail.gmail.com>
Ralf Thielow <ralf.thielow@googlemail.com> writes:
> So i have to commit ".gitattributes" and everything is fine for me after!?

No. Sorry if I was unclear, but I do not see which part was unclear in what I wrote, so...

Show 23 quoted lines
>> The sequence adds "test\r\n" file without .gitattributes to have the
>> repository record that exact byte sequence for the file. But then later
>> goes around and says "This file wants to express the end of line with CRLF
>> on the filesystem, so please replace LF in the repository representation
>> to CRLF when checking out, and replace CRLF in the working tree to LF when
>> checking in".
>>
>> So it is not surprising that "\r\n" coming from the repository is replaced
>> to "\r\r\n" when checked out. As far as the repository data is concerned,
>> that line has a funny byte with value "\r" at the end, immediately before
>> the line terminator "\n".
>>
>> What you said is _technically_ correct in that sense.
>>
>> However, I think the CRLF filter used to have a hack to strip "\r" if the
>> repository data records "\r" at the end of line. This was intended to help
>> people who checked in such a broken text file (if it is a text file, then
>> raw ascii CR does not have a place in it in the repository representation)
>> and it was a useful hack to help people recover from such mistakes to
>> start the project from DOS-only world (with CRLF in the repository data)
>> and migrate to cross platform world (with LF in the repository data, CRLF
>> in the DOS working tree).  I suspect that the streaming filter conversion
>> may not have the same hack in it.
Previous: Ralf ThielowNext: Ralf Thielow
Message 10 of 15 in “[BUG] attribute "eol" with "crlf"”
  1. Ralf ThielowDec 16, 2011
  2. Junio C HamanoDec 16, 2011
  3. Ralf ThielowDec 16, 2011
  4. Matthieu MoyDec 16, 2011
  5. Ralf ThielowDec 16, 2011
  6. Adam BorowskiDec 16, 2011
  7. Ralf ThielowDec 16, 2011
  8. Junio C HamanoDec 16, 2011
  9. Ralf ThielowDec 16, 2011
  10. Junio C HamanoDec 16, 2011
  11. Ralf ThielowDec 16, 2011
  12. Junio C HamanoDec 16, 2011
  13. Junio C HamanoDec 16, 2011
  14. Ralf ThielowDec 17, 2011
  15. Junio C HamanoDec 17, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.