difftool's dir-diff should never reuse a symlink, regardless of what it points to. Tighten use_wt_file() so that it rejects all symlinks. Helped-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: David Aguilar <davvid@xxxxxxxxx> --- git-difftool.perl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/git-difftool.perl b/git-difftool.perl index 1abe647..873db57 100755 --- a/git-difftool.perl +++ b/git-difftool.perl @@ -70,13 +70,13 @@ sub use_wt_file my ($repo, $workdir, $file, $sha1) = @_; my $null_sha1 = '0' x 40; - if (! -f "$workdir/$file") { - return (0, $null_sha1); + my $workfile = "$workdir/$file"; + if (-f $workfile && ! -l $workfile) { + my $wt_sha1 = $repo->command_oneline('hash-object', $workfile); + my $use = ($sha1 eq $null_sha1) || ($sha1 eq $wt_sha1); + return ($use, $wt_sha1); } - - my $wt_sha1 = $repo->command_oneline('hash-object', "$workdir/$file"); - my $use = ($sha1 eq $null_sha1) || ($sha1 eq $wt_sha1); - return ($use, $wt_sha1); + return (0, $null_sha1); } sub changed_files -- 2.6.2.282.gfefd36e -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html