This project will be a Subversion server used to access Git repositories, written in Go.
This is a work in progress, and it is in a very early stage: right now, many things do not work (yet).
The program behaves like the "svnserve -t" command: it reads commands and sends responses via stdin / stdout.
The list of all the commits up to the HEAD are stored in .git/git-svn-refs.txt,
which is used to number them as SVN revisions.
Function syncSvnRevs() reads all the commits from .git/git-svn-refs.txt and,
if any commit is missing, it adds them to that file.
WARNING: There are no locks (yet) when reading and writing file .git/git-svn-refs.txt.
The following SVN protocol commands are currently implemented:
get-latest-revstatlistget-file
The following SVN commands are currently working against this server (at least in part):
svn infosvn lssvn catsvn log
- "last changed" (author, rev and date) show information for the whole commit, not for the file inside the commit.
- Command
update(needed forsvn checkout)
svn checkoutsvn blamesvn proplist