[gitk] No commit diff when 'safecrlf' set to true is causing an error

From: Illia Bobyr <hidden>
Date: 2016-06-15 22:53:39

Hi,

The idea of my complain is that if a patch may not be shown because diff-tree returns an error, that error should be visible to the user.
Right now it is silently ignored.

I hit this when I was changing between profiles with different safecrlf/autocrlf settings and some commits would not show any diffs any more in gitk.  Without any errors.

Here is a test case:

mkdir gitk-silent-error-test
cd gitk-silent-error-test

git init .

git config core.autocrlf false
git config core.safecrlf false

echo hello > test
git add test
git commit -m 1

echo there >> test
git add test
git commit -m 2

gitk

In the gitk window I now see both commits along with the commit messages, but do not see the patch for the second commit.
And as a user I do not really understand why at this point there are no error messages.

I was able to figure out that it is the git diff-tree command that gitk is using who is complaining.
It seems a little unintuitive that error in the file format in my working directory affects what gitk is showing.

I think that gitk should have provided a --no-check argument to diff-tree if there would be one.  But there is none.
And I might be wrong about the best solution.

Thank you,
Ilya Bobyr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help