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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Cc: Shawn O. Pearce <spearce@xxxxxxxxxxx>, 
     Bryan Donlan <bdonlan@xxxxxxxxx>,
     git@xxxxxxxxxxxxxxx]

Shawn O. Pearce wrote:
> Bryan Donlan <bdonlan@xxxxxxxxx> 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.

By the way, have you looked into what git-svn uses? IIRC it had some
improvements to avoid spending more disk space on SVN revno <-> Git SHA-1
mapping than on the repository itself...
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git


--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux