git-svnserver

command module
v0.0.0-...-0cb3b06 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2024 License: MIT Imports: 15 Imported by: 0

README

git-svnserver

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

How does this work

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.

Basic functionality

The following SVN protocol commands are currently implemented:

  • get-latest-rev
  • stat
  • list
  • get-file

The following SVN commands are currently working against this server (at least in part):

  • svn info
  • svn ls
  • svn cat
  • svn log

TO-DO list

  • "last changed" (author, rev and date) show information for the whole commit, not for the file inside the commit.
  • Command update (needed for svn checkout)

Non-working SVN commands

  • svn checkout
  • svn blame
  • svn proplist

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL