Subject: Re: git-svn failure when symlink added in svn

From: Eric Wong <[email-masked]>
Date: Sun, 29 Apr 2007 11:31:36 -0700

Alexander: please don't drop me from the Cc next time, thanks.

Junio C Hamano <[email-masked]> wrote:
> Seth Falcon <[email-masked]> writes:
> > Junio C Hamano <[email-masked]> writes:
> > ...
> >> 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...
> >
> > This also works as a fix for me on OS X and obviously is nicer than
> > resorting to temp files.  Again, with this patch against git master
> > the test case that Eric posted passes as does one of my own examples.
> 
> Well, I think the sysseek should be done only when we did read
> 'link ' from the beginning and not in other cases, so in that
> sense my patch is very broken.  Probably the sysseek() needs to
> be done inside the "if ($fb->mode_b} == 120000)" part, after it
> checks for 'link '.

Yes, don't add the new sysseek there.  All the reads and seeks in that
block of code should probably be sysreads and sysseeks instead.  Feel
free to patch and test this as I don't have time at the moment.

> By the way.
> 
> I admit I have never given a serious look at the code of
> git-svn.perl until now.
> 
> It has comparison with 120000 and 100644 all over with ==/!=.
> Even though these originally come from parse result of textual
> output from ls-tree and diff-tree, and the code never treats
> $mode strings as octal integer, I would feel better if the
> literals were quoted and comparison done with eq/ne.

It works either way as stringifying those would be unambiguous,
although I understand strings can be considered better style...
Feel free to change this.

-- 
Eric Wong