Re: git-svn failure when symlink added in svn
From: Seth Falcon <hidden>
Date: 2016-06-15 22:43:07
Junio C Hamano [off-list ref] writes:
Is it really the redirection that is the problem? The process seeks $fh back to the beginning, reads 5 bytes from it (to ensure that is 'link '), and then forks to feed $fh to git-hash-object. Now what do you really want to hash here? I do not know what this "file that begins with 'link '" magic is about, but I suspect that the child may or may not start reading from byte offset 5 of that file, depending on how the low-level I/O is tied to Perl. Here is a little test script to imitate what the part in close_file sub is doing. What does it output on MacOS (or whatever systems that are having the same problem)? On a Linux box, it appears that it reads the remainder of the file and the test script says "child says: >>12345", so I am assuming that is what close_file sub wants to do. If my suspicion is correct, you would get "child says: >>link 12345", in which case sysseek() commented out below would help, perhaps.
On OS X, I get:
ziti:~/temp seth$ ./perltest1.pl
read[5]: link
child says: child: at 5
And uncommenting the sysseek call, I get:
ziti:~/temp seth$ ./perltest1.pl
read[5]: link
child says: child: at 5
child says: >>12345
+ seth