From: Junio C Hamano Date: Tue, 27 Oct 2015 22:41:33 GMT Subject: Re: [PATCH] difftool: avoid symlinks when reusing worktree files Message-ID: In-Reply-To: <1445981088-6285-1-git-send-email-davvid@gmail.com> David Aguilar writes: > - if (! -f "$workdir/$file") { > - return (0, $null_sha1); > + my $workfile = "$workdir/$file"; > + if (-f $workfile && ! -l $workfile) { I still don't know if return (0, $null) is the right thing to do, but in any case, I find the original flow easier to read, i.e. "we notice a few cases we cannot do the main 'hash-object' thing this function is meant to do and return early". I.e. if (-l "$workdir/$file" || ! -f _) { return (0, $null_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);