svnpserver is a CVS pserver implementation for Subversion. It is useful for e.g. old build-scripts or legacy application when migrating from CVS to SVN.
Examples of such applications may be build-scripts on old branches that have been shipped to customers and might get rebuilt in the future, but you don't want to port the build-system on all branches to subversion. Another example is a tool that uses version control but can only work with CVS.
Usage
As a prerequisite, install the python SVN modules from http://pysvn.tigris.org/ -- to develop svnpserver, Version 1.5.0 was used.
Install svnpserver.py and put an entry into /etc/inetd.conf similar to the following (the syntax is different for other inet servers like xinetd, in the following example the two lines should be joined into one):
2401 stream tcp nowait nobody /path/to/svnpserver.py
svnpserver.py svn+ssh://path/to/svn/repository/
The Server currently supports http and svn+ssh repository access methods. The file method is alway accessing the repository as the user configured in the inetd configuration and is not recommended.
For the svn+ssh access method, the SSH agent socket (setting of SSH_AUTH_SOCK) is set as the cvs password. To set, run cvs login and paste the contents of the SSH_AUTH_SOCK environment variable as the password.
For the http access method, you have to do a blind login, using the command cvs login with the correct username and password to use for the http authentication. Symptom of a wrong password is an infinite hang on a cvs command that needs authentication (e.g., a commit) where svnpserver repeatedly tries to authenticate with subversion, always using the same wrong password. This bahaviour is, of course, considered a bug.
The CVSROOT is currently ignored by svnpserver but may be used in the future to access different parts of a svn repository with different settings (or different svn repos).
Usage: svnpserver.py [-p|--project project] [-s|--syslog] svnroot
What's New in This Release:
· Implement the following CVS commands: co, update, ci, diff, add, remove
|