Re: difftool -d symlinks, under what conditions
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:56:22
David Aguilar [off-list ref] writes:
Interesting approach. While this does get the intended behavior for difftool, I'm afraid this would be a grave regression for existing "git diff --raw" users who cannot have such behavior.
The 0{40} in RHS of --raw output is to say that we do not know what
object name the contents at the path hashes to.
If you run "git diff HEAD^" for a path that is different between
HEAD and the index for which you do not have a local change in the
working tree, we have to show the path (because it is different
between the working tree and HEAD^), but we know the object name for
copy in the working tree, simply because we know it matches what is
in the index. Showing 0{40} on the RHS in such a case loses
information, making us say "We don't know" when we perfectly well
know. That is a regression.
If the user is allowed to touch any random file in the working tree,
I do not see a workable solution other than John Keeping's follow-up
patch to make symlinks of all paths involved.