Fix symlink handling in git-svn, related to PerlIO
authorJunio C Hamano <junkio@cox.net>
Sun, 29 Apr 2007 21:05:54 +0000 (14:05 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 30 Apr 2007 22:50:13 +0000 (15:50 -0700)
commitbcd8ee5b4368594f2fe646c97d75a8bcdfb1d4e7
tree3d4f95d97e35720c9060afb0cdcadfe484429006
parente9d54bd18bcf5dc9eb68eb1cba9a6a7ba3f71fd6
Fix symlink handling in git-svn, related to PerlIO

After reading the leading contents from a symlink data obtained
from subversion, which we expect to begin with 'link ', the code
forked to hash the remainder (which should match readlink()
result) using git-hash-objects, by redirecting its STDIN from
the filehandle we read that 'link ' from.  This was Ok with Perl
on modern Linux, but on Mac OS, the read in the parent process
slurped more than we asked for in stdio buffer, and the child
did not correctly see the "remainder".

This attempts to fix the issue by using lower level sysseek and
sysread instead of seek and read to bypass the stdio buffer.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Acked-by: Seth Falcon <sethfalcon@gmail.com>
git-svn.perl