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

Re: [PATCH 3/3] Teach "git branch" about --new-workdir

From
Marius Storm-Olsen <marius@trolltech.com>
Date
Jul 24, 2007, 13:26 UTC
Message-ID
<46A5FDF0.3060801@trolltech.com>
In-Reply-To
<Pine.LNX.4.64.0707241337470.14781@racer.site>
 > BTW a friend reported a CRLF issue on Windows, _in spite_ of
 > setting the gitattributes appropriately... Did you ever get
 > something like that?

Hmm, I haven't really had problems with the gitattributes files in the directory of the file to be ignored, but rather .git/info/attributes.

There I have had problems with directories containing spaces. The 
escaping of the spaces doesn't work, so even if you do
     foo/bar\ baz/file.txt -crlf
it doesn't work. So, you have to do
     foo/*/file.txt -crlf
instead.
I mainly have the problem with the following:
1) User on Windows is using MinGW port or Cygwin setup with
    DOS EOL.
2) Has core.autocrlf=true
3) Files for XML testcases (for example) is checked into
    repo on Linux (File contains CRLF EOL, since its crucial
    for testing the XML parser)
4) git diff shows all lineending changed, since the
    autocrlf tries to convert the files which are really
    checked into the repo with DOS EOL.
5) You end up adding a bunch of
        foo/bar/baz/* -crlf
    into your .git/info/attributes file or the like.
So, it's look like this ('yes' mean CRLF EOL):
     Repo | Working dir | Convert EOL?
     ---------------------------------
1)  -      LF            no
2)  -      CRLF          yes
3)  LF     LF            no
4)  LF     CRLF          yes
5)  CRLF   LF            no
6)  CRLF   CRLF          yes

The problem is that currently 6) is 'yes', and turns the file into a LF file, which it shouldn't.

So, to fix the problem the crlf convertor should really check if the file has crlf EOL in the repo, if so, avoid EOL conversion. (6) should be 'no' :-)

-- 
.marius
Previous: Johannes SchindelinNext: Marius Storm-Olsen
Message 31 of 46 in “Teach "git branch" about --new-workdir”
  1. 3/3 Teach "git branch" about --new-workdirJohannes Schindelin, Jul 22, 2007
  2. Daniel BarkalowJul 22, 2007
  3. Johannes SchindelinJul 22, 2007
  4. Julian PhillipsJul 22, 2007
  5. Johannes SchindelinJul 22, 2007
  6. Julian PhillipsJul 22, 2007
  7. Johannes SchindelinJul 22, 2007
  8. Julian PhillipsJul 22, 2007
  9. Jakub NarebskiJul 22, 2007
  10. Johannes SchindelinJul 22, 2007
  11. Johannes SchindelinJul 22, 2007
  12. Shawn O. PearceJul 23, 2007
  13. Junio C HamanoJul 23, 2007
  14. Shawn O. PearceJul 23, 2007
  15. Shawn O. PearceJul 23, 2007
  16. Johannes SchindelinJul 23, 2007
  17. Johannes SchindelinJul 23, 2007
  18. Marius Storm-OlsenJul 24, 2007
  19. Johannes SchindelinJul 24, 2007
  20. Junio C HamanoJul 24, 2007
  21. Johannes SchindelinJul 24, 2007
  22. Marius Storm-OlsenJul 24, 2007
  23. Julian PhillipsJul 24, 2007
  24. Marius Storm-OlsenJul 24, 2007
  25. Johannes SchindelinJul 24, 2007
  26. Josef WeidendorferJul 24, 2007
  27. Johannes SchindelinJul 24, 2007
  28. Josef WeidendorferJul 24, 2007
  29. Jakub NarebskiJul 25, 2007
  30. Johannes SchindelinJul 24, 2007
  31. Marius Storm-OlsenJul 24, 2007
  32. Marius Storm-OlsenJul 24, 2007
  33. Johannes SchindelinJul 24, 2007
  34. Marius Storm-OlsenJul 24, 2007
  35. Johannes SchindelinJul 24, 2007
  36. Marius Storm-OlsenJul 24, 2007
  37. Alex RiesenJul 24, 2007
  38. Marius Storm-OlsenJul 25, 2007
  39. Johannes SchindelinJul 25, 2007
  40. Steven GrimmJul 25, 2007
  41. Andy ParkinsJul 25, 2007
  42. Marius Storm-OlsenJul 25, 2007
  43. Johannes SchindelinJul 25, 2007
  44. Linus TorvaldsJul 25, 2007
  45. Christian MICHONJul 26, 2007
  46. Julian PhillipsJul 23, 2007

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.