diff: do not reuse_worktree_file for submodules
commitaba4727281612c3e24914691727e11e1f44a9aac
authorThomas Rast <tr@thomasrast.ch>
Sun, 16 Feb 2014 16:52:34 +0000 (16 17:52 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 18 Feb 2014 20:06:08 +0000 (18 12:06 -0800)
tree046c974c9f70052cd9b29a7e18b2310eede101f6
parent2f93541d88fadd1ff5307d81c2c8921ee3eea058
diff: do not reuse_worktree_file for submodules

The GIT_EXTERNAL_DIFF calling code attempts to reuse existing worktree
files for the worktree side of diffs, for performance reasons.
However, that code also tries to do the same with submodules.  This
results in calls to $GIT_EXTERNAL_DIFF where the old-file is a file of
the form "Submodule commit $sha1", but the new-file is a directory in
the worktree.

Fix it by never reusing a worktree "file" in the submodule case.

Reported-by: Grégory Pakosz <gregory.pakosz@gmail.com>
Signed-off-by: Thomas Rast <tr@thomasrast.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
t/t4020-diff-external.sh