Re: [PATCH] mergetool: respect autocrlf by using checkout-index
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:02
Charles Bailey [off-list ref] writes:
I suspect that the LF endings in the file is due to the fact that in
builtin-merge-file.c, the file is opened (fopen) in binary mode
("wb"), but xdl_merge terminates all lines with a raw '\n'.
The obvious fix would be to change fopen in builtin-file-merge.c to
use "w" instead, but this doesn't work in a number of scenarios. In
particular, it is wrong for repositories on windows with core.autocrlf
set to false, and would not fix non-windows repositories with
core.autocrlf set to true.
Currently, I've no idea as to what the solution should be."git file-merge" is designed to be a replacement for stock RCS merge, and unfortunately it does not call convert_to_working_tree(), nor has any way to know for which path it should take the attributes to apply to affect what convert_to_working_tree() should do even if it were to call it. I think we would need a new option to the command that says "pretend this is about merging this path, and use the gitattributes specified for it when writing out the result."