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

Re: git diff, git mergetool and CRLF conversion

From
Charles Bailey <charles@hashpling.org>
Date
Jan 21, 2009, 17:23 UTC
Message-ID
<20090121172351.GB21727@hashpling.org>
In-Reply-To
<83k58ofvjt.fsf@kalahari.s2.org>
On Wed, Jan 21, 2009 at 06:55:34PM +0200, Hannu Koivisto wrote:
Show 13 quoted lines
> Hi,
> 
> Suppose I have core.autocrlf set to true and and due to that a
> version controlled file in a working tree with CRLF line endings.
> If I modify such a file and then say "git diff", I get a patch with
> LF line endings.
> 
> Also, if get a merge conflict with a file to which CRLF conversion
> is applied and run e.g. "git mergetool -t emerge", the temporary
> files representing stage2 and stage3 versions seem to have LF line
> endings.
> 
> Is this intended behaviour?  I'm using 1.6.1 on Cygwin.

Speaking for mergetool, I believe that it's simply because mergetool uses git cat-file which just outputs the raw contents of a blob and doesn't do any line ending conversion.

IMHO, I think that it should probably perform the 'convert to working tree format' change when preparing the temporary files. I'm not sure how best to do that, but perhaps it should be using git checkout-index with the --temp option instead of cat-file.

-- 
Charles Bailey
http://ccgi.hashpling.plus.com/blog/
Previous: Hannu KoivistoNext: Theodore Tso
Message 2 of 12 in “git diff, git mergetool and CRLF conversion”
  1. Hannu KoivistoJan 21, 2009
  2. Charles BaileyJan 21, 2009
  3. Theodore TsoJan 21, 2009
  4. mergetool: respect autocrlf by using checkout-indexCharles Bailey, Jan 21, 2009
  5. Junio C HamanoJan 23, 2009
  6. Charles BaileyJan 23, 2009
  7. Hannu KoivistoJan 26, 2009
  8. Charles BaileyJan 26, 2009
  9. Junio C HamanoJan 26, 2009
  10. Junio C HamanoJan 26, 2009
  11. Junio C HamanoJan 26, 2009
  12. Hannu KoivistoJan 27, 2009

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.