CVS: Concurrent Versions System
Contents
See also: SubVersion
Documentation
- CVS Primer
- CVS Book
- CVSNT
- My CVS Lesson
Command Line Examples
# export CVSROOT=/cvsroot # export CVSROOT=:pserver:adam@cvs.spack.org:/cvsroot
And then ...
# cvs login # cvs checkout <module>
To import a new source code base into CVS for the firest time:
# cd /path/to/source/code # cvs import <module> vendor_1 release_1
Or to imort into a sub-module:
# cd /path/to/source/code cvs import /adam/module/foo/bar vendor_1 release_1
Using with SSH
To use CVS securely the best option is to SSH in and then invoke CVS through the shell. The configuration for this is a little different, here's how it works (note that you don't do a "cvs login" when using SSH in this way):
# export CVS_RSH=ssh # export CVSROOT=:ext:adam@cvs.spack.org:/cvsroot # cvs co <module>
Client Software
CVSWebEdit
CVSWebClient
- ViewCVS
- CVSWeb ...
Useful Add-ons
- Bonsai
- ViewCVS
- CVSSearch
- CVS2RSS - Convert you history file to an RSS feed.
- CVSStats
CVSMonitor - Very cool way of viewing CVS activity in a graphical manner (example).
Troubleshooting
Q: I got this error after I moved a repository from /cvsroot/homeone to /cvsroot/hometwo: "cvs [server aborted]: can't chdir(/cvsroot/homeone): Permission denied".
A: All the words ofwisdom that I could find didn't help. Eventually it turned out that the problem was that the user that owned the /cvsroot/hometwo directory had a home directory of /cvsroot/homeone. Updating the users home directory worked like a charm.
Q: I'm getting errors about /tmp being full.
A: The problem is most likely that /tmp on the server is filling up. You either need to symlink /tmp to somewhere with more space (/var/tmp maybe?) or you need to pass cvs the "-T /path/to/tmp" option on the command line. In Debian you do this in /usr/sbin/cvs-pserver.