Going beyond what CVS offers
dyork, there’s actually a bit more to it than that. When I set up my CVS server (because SourceForge is still the most inept service I’ve seen to date to offer revision control), I started with cvsweb, until some serious security issues were found in it (both public and non-public issues). I moved to ViewCVS, and although it’s python, it’s much easier to manage.
Also, when setting up a cvs server that uses inetd.conf, and having more than 3-4 repositories can get tricky. I have about 40 repositories in my cvs now, for various things, public and private, and I had to resort to some trickery to get it working, both in CVS native as well as in viewcvs.
<hint> #!/bin/sh CVS="/usr/bin/cvs" CVSARGS=" --allow-root=/cvs/repository_1 --allow-root=/cvs/repository_2 --allow-root=/cvs/repository_3 # .. n pserver" exec ${CVS} ${CVSARGS} </hint>