]> git.ipfire.org Git - thirdparty/git.git/commitdiff
difftool -d: ensure that intent-to-add files are handled correctly
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 1 Jul 2020 21:19:07 +0000 (21:19 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Jul 2020 23:15:45 +0000 (16:15 -0700)
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>
t/t7800-difftool.sh

index 29b92907e2ad850514fe970ca1adeeda8d0697c8..524f30f7dc7c2388bad3885303541d4a72ed4470 100755 (executable)
@@ -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 &&