Thread (1 message) 1 message, 1 author, 2016-06-15

Re: git-svn failure when symlink added in svn

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:07
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

Seth Falcon [off-list ref] writes:
On OS X, I get:

    ziti:~/temp seth$ ./perltest1.pl 
    read[5]: link 
    child says: child: at 5
Ah, so the previous read($fh, $buf, 5) lets stdio absorb the
whole (short) input, and the underlying seek pointer is not
adjusted back across fork, and the child does not have anything
to read.
And uncommenting the sysseek call, I get:

    ziti:~/temp seth$ ./perltest1.pl 
    read[5]: link 
    child says: child: at 5
    child says: >>12345
Then I suspect the following could be less invasive and more
efficient fix for the problem.  I do not have an access to MacOS
box, and I do not have a working sync with any SVN repository,
so I cannot test it myself, though...
diff --git a/git-svn.perl b/git-svn.perl
index 7b5f8ab..e487da6 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -2454,6 +2454,7 @@ sub close_file {
 		}
 		defined(my $pid = open my $out,'-|') or die "Can't fork: $!\n";
 		if (!$pid) {
+			sysseek($fh, 5, 0);
 			open STDIN, '<&', $fh or croak $!;
 			exec qw/git-hash-object -w --stdin/ or croak $!;
 		}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help