Re: difftool -d symlinks, under what conditions
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 12, 2013, 20:38 UTC
- Message-ID
- <7vk3pc73r1.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CAJDDKr7S0ex1RvZS0QeBXxAuqcKrQJzhZeJP0MoMGmpGXyMOrA@mail.gmail.com>
David Aguilar <davvid@gmail.com> 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.