export CVS_SERVER=git-cvsserver cvs -d :ext:user@server/path/repo.git co <HEAD_name>
It is highly functional. However, not all methods are implemented, and for those methods that are implemented, not all switches are implemented.
Testing has been done using both the CLI CVS client, and the Eclipse CVS plugin. Most functionality works fine with both of these clients.
CVS clients cannot tag, branch or perform GIT merges.
cvspserver stream tcp nowait nobody git-cvsserver pserverNote: In some cases, you need to pass the pserver argument twice for git-cvsserver to see it. So the line would look like
cvspserver stream tcp nowait nobody git-cvsserver pserver pserverNo special setup is needed for SSH access, other than having GIT tools in the PATH. If you have clients that do not accept the CVS_SERVER env variable, you can rename git-cvsserver to cvs.
[gitcvs]
enabled=1
# optional for debugging
logfile=/path/to/logfile
Note: you need to ensure each user that is going to invoke
git-cvsserver has write access to the log file and to the git
repository. When offering anon access via pserver, this means that
the nobody user should have write access to at least the sqlite
database at the root of the repository.
For SSH access, CVS_SERVER should be set to git-cvsserver
Example:
export CVSROOT=:ext:user@server:/var/git/project.git
export CVS_SERVER=git-cvsserver
cvs co -d project-master master