Thread (6 messages) flat view 6 messages, 3 authors, 2016-06-15

Re: [PATCH] Respect core.autocrlf when preparing temporary files for external diff

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:27

Sebastian Schuberth [off-list ref] writes:
Me being the reporter of the original msysGit issue #177, I'd like to
clarify that my intention not necessarily was to make
"core.autocrlf=true" affect temporary files (i.e. to "smudge" them),
but to ensure that the files fed into "git diff" are always generated
/ acquired in a consistent way, so that they are in fact comparable.
Thanks.  I think everybody involved in the thread is in agreement with
that.
I'd also be happy with a solution that always feeds clean files into
"git diff", although that would probably mean that we could not reuse
working tree files if "core.autocrlf=true" is set.
When we generate diff internally, even when we borrow from the work tree,
we clean it before using.  See diff_populate_filespec(), ll.1900-1915.

Borrowing done by diff_tempfile(), which currently does not run clean, and
the call to prep_temp_blob() in ll.2030-2035 that gives a temporary file
without convert_to_working_tree() are inconsistent, as pointed out by you
and Dscho.

If you run "git diff <filename>" after cloning, I expect that no temporary
files are involved, _unless_ you have some settings that force "git diff"
not to use the internal diff.  Do you use GIT_EXTERNAL_DIFF?  Do you use
"textconv" attribute?  What external program do you invoke from these
mechanisms, and what does it expect to see as its input?

The discussion in the last few messages in this thread speculates that the
external programs are more likely to expect representations suitable in
the work tree, aka "smudged", than "clean" one.  It would be nice to get a
datapoint from you as the original reporter to confirm or refute that
speculation.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help