Subject: Re: git-svn fix for broken symlinks

From: Eric Wong <[email-masked]>
Date: Wed, 19 Dec 2007 00:48:53 -0800

Sverre Johansen <[email-masked]> wrote:
> Hi,
> 
> There is a bug in older versions of SVN that makes it possible to create
> symlinks where the target is not the path to the file, but instead the
> content of the target file. The bug is described here [0].
> 
> This breaks git-svn because it expects files which is marked as symlinks
> to have the content "link: <filename>".
> 
> There was a thread about this back in July, resulting in this patch [1]. Is that
> patch planned to be merged anytime soon? I'm using it, and it works great
> for me.
> 
> [0]: http://subversion.tigris.org/issues/show_bug.cgi?id=2692
> [1]: http://kerneltrap.org/mailarchive/git/2007/7/19/252025

Sverre: Thanks for the reminder, I'm quite absent-minded :/

I've pushed out the patch to http://git.bogomips.org/git-svn.git
(or git://, if you prefer) along with two others

Junio: please pull, thanks.

commit 540424b263d626aa762757a31ca9b4becc7fb513
Author: Eric Wong <[email-masked]>
Date:   Wed Dec 19 00:31:43 2007 -0800

    git-svn: avoid warning when run without arguments
    
    While we're in the area, finish writing a halfway-written
    comment describing what that block does...
    
    Signed-off-by: Eric Wong <[email-masked]>

commit 7fc35e0e94782bbbefb920875813519038659930
Author: Eric Wong <[email-masked]>
Date:   Wed Dec 19 00:06:45 2007 -0800

    git-svn: workaround a for broken symlinks in SVN
    
    It's possible for bad clients to commit symlinks without the
    5-character "link " prefix in symlinks.  So guard around this
    bug in SVN and make a best effort to create symlinks if the
    "link " prefix is missing.
    
    More information on this SVN bug is described here:
      http://subversion.tigris.org/issues/show_bug.cgi?id=2692
    
    To be pedantic, there is still a corner case that neither we nor
    SVN can handle:  If somebody made a link using a broken SVN
    client where "link " is the first part of its path, e.g.
    "link sausage", then we'd end up having a symlink which points
    to "sausage" because we incorrectly stripped the "link ".
    Hopefully this hasn't happened in practice, but if it has,
    it's not our fault SVN is broken :)
    
    Thanks to Benoit Sigoure and Sverre Johansen for reporting
    and feedback.
    
    Signed-off-by: Eric Wong <[email-masked]>

commit ad94802a7bc599ade73ec0b04c61b2f80b3c1b23
Author: Eric Wong <[email-masked]>
Date:   Sat Dec 15 19:08:22 2007 -0800

    git-svn: avoid leaving leftover committer/author info in rebase
    
    We set the 6 environment variables for controlling
    committer/author email/name/time for every commit.
    
    We do this in the parent process to be passed to
    git-commit-tree, because open3() doesn't afford us the control
    of doing it only in the child process.  This means we leave them
    hanging around in the main process until the next revision comes
    around and all 6 environment variables are overwridden again.
    
    Unfortunately, for the last commit, leaving them hanging around
    means the git-rebase invocation will pick it up, rewriting the
    rebased commit with incorrect author information.  This should fix
    it.
    
    Signed-off-by: Eric Wong <[email-masked]>
---

-- 
Eric Wong