Re: [PATCH] difftool: avoid symlinks when reusing worktree files
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 27, 2015, 22:41 UTC
- Message-ID
- <xmqqwpu8lysi.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <1445981088-6285-1-git-send-email-davvid@gmail.com>
David Aguilar <davvid@gmail.com> 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);