Subject: Re: Git / Subversion Interoperability

From: Eric Wong <[email-masked]>
Date: Sat, 24 Mar 2007 13:31:29 -0700

Bruno Cesar Ribas <[email-masked]> wrote:
> Hello,
> 
> I'm going to apply for the Git / Subversion Interoperability project.
> 
> I saw that there is no mentor yet assigned for the "job". So i'm sending this
> mail to get some help to start the project by submiting to GSOC and begin to
> work :)

I work on git-svn and I can certainly help you in some ways.  However
I'm uncomfortable committing myself to this because of time constraints;
so I won't be signing up as a mentor.  Sorry.

> My idea on this project is to create:
> 1.  git-svnserver

I'm not familiar with the internals of the SVN protocol, and my work
with git-svn has sufficiently frightened me away from wanting to
investigate further :).

I also suggest you write a HTTP/DAV-based server/plugin/cgi instead of
relying on the SVN protocol.  In my experience svnserve itself is quite
finnicky.

> 2.  write a backend for Subversion

One key difference between git and Subversion is the design emphasis on
data structures versus design emphasis on code/APIs.  Subversion
certainly tries to keep their APIs stable (and for the most part seem
successful), but their publically available storage backends are
definitely lacking.

I'm not sure this part of the project is going to help git very much
unless it speeds up the libification effort.

> And make it easy to work with SSH using those "common" flags in
> authorized_keys like:
> command="svnserve -t -r /home/svn --tunnel-user=bruno" ssh-dss bla bla
> 
> And as an idea i would like to make the same funcionality to git, as it is
> not as easy today to do something like above :)

One reason to work on your project is to help SVN users who have no idea
what UNIX, ssh, and tunneling are.  This is also why I recommend working
on the HTTP/DAV protocol instead.

-- 
Eric Wong