On Thu, 20 Mar 2008, Shawn O. Pearce wrote:
Bryan Donlan <bdonlan@xxxxxxxxx> wrote:
I'm planning to apply for the git summer of code project. My proposal
is based on the project idea of a subversion gateway for git,
implemented with a new subversion filesystem layer. A draft of my
proposal follows; I'd appreciate any comments/questions on it before
the application period proper begins.
Very cool. Have you had a chance to look at the prototype python
implementation of an SVN server that Julian Phillips started?
http://git.q42.co.uk/w/git_svn_server.git
(now with partial support for 'svn log' ... ;))
/props/{trunk/,branches/,tags/} - file properties; props on directories will be
represented with a reserved filename (._GIT-SVN-DIRPROPS perhaps)
copyfrom information might be in /props, or in a seperate tree
How critical are file properties to an SVN client for proper
functioning? Given the challenges already in front of you for this
project I would almost encourage you to avoid dealing with file
level properties. Its hard enough to make something that speaks SVN
on the wire but reads/writes Git on disk, not to mention you have
to somehow "flatten" the Git DAG down into a sequential revision
namespace to make the SVN clients happy. So deferring property
support until later may be wise.
You might need to get svn:eol-style working to prevent the svn client from
munging any binary files? Can't think of any other vital properties atm.
/revprops/NNN - revision properties for the given revision number
Ditto. Aside from the special merge properties you mentioned,
I wonder if you can simply avoid implementing support for these
early on.
Since you have to explicitly enable revprop editing in the subversion
repository by enabling a hook script, I should think that this was
definately something that could be left at the bottom of the TODO list ...
Though you do need to be able to convert commit info into the appropriate
revprops (e.g. commit msg -> svn:log revprop)
--
Julian
---
Often statistics are used as a drunken man uses lampposts -- for support
rather than illumination.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html