Subject: Re: [SoC RFC] libsvn-fs-git: A git backend for the subversion filesystem

From: Harvey Harrison <[email-masked]>
Date: Wed, 19 Mar 2008 23:18:34 -0700

On Thu, 2008-03-20 at 00:56 -0400, Shawn O. Pearce wrote:
> Bryan Donlan <[email-masked]> wrote:
> > /revmap/NNN - a reference to the commit hash in the .git-svn branch
> >   corresponding to the given subversion revision number
> 
> How about using a simple flat file interface?  To initially prime
> the file you can do something like:
> 
> 	git rev-list --topo-order --date-order --reverse --all >.git/svn-map
> 
> and then number the revisions by the line number that they appear on.
> Locating a Git SHA-1 for a specific SVN revision would be a simple
> case of lseek(fd, 41 * rev, SEEK_SET).  Going the other direction
> would be more of a challenge, but is still doable.
> 
> Updating the file should just require appending new commits; if
> the SVN client wants a new commit you append on and return the
> line number.  If Git has caused new commits not in this file you
> need to rebuild the log.  This would have to be done incrementally,
> to prevent changing a prior SVN revision number that clients may
> already know about.

Why not just copy the rev_map format git-svn already uses, it's pretty
efficient.

Harvey