difftool -d: ensure that intent-to-add files are handled correctly

In https://github.com/git-for-windows/git/issues/2677, a `git difftool
-d` problem was reported. The underlying cause was a bug in `git
diff-files --raw` that we just fixed: it reported intent-to-add files
with the empty _tree_ as the post-image OID, when we need to show
an all-zero (or, "null") OID instead, to indicate to the caller that
they have to look at the worktree file.

The symptom of that problem shown by `git difftool` was this:

	error: unable to read sha1 file of <path> (<empty-tree-OID>)
	error: could not write '<filename>'

Make sure that the reported `difftool` problem stays fixed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2020-07-01 21:19:07 +00:00 коммит произвёл Junio C Hamano
Родитель 85953a3187
Коммит 3080c50980
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -720,6 +720,14 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
test_cmp expect actual
'
test_expect_success 'add -N and difftool -d' '
test_when_finished git reset --hard &&
test_write_lines A B C >intent-to-add &&
git add -N intent-to-add &&
git difftool --dir-diff --extcmd ls
'
test_expect_success 'outside worktree' '
echo 1 >1 &&
echo 2 >2 &&