================== Basic CVS Concepts ================== CVS is the Concurent Versions System. It was originally designed to be used as a source code management and revision control system, but people use it for all sorts of things these days. Client/server CVS is essentially client/server oriented. This can be a little confusing because the client and server can be on the same machine, and don't necessarily need to use the network. More accurate terms than client/server are probably repository/client. There is a repository of all the source code sitting somewhere, and information on all the changes that have been made to that code, and a CVS client has some way to talk to that. We are primarily interested in local repo access, and remote "pserver" access. What is version control? The idea behind is version control is that you initially check in a sets of files, and then as you change those files over time, you "check in" changes to the files. If at some point in time, you need to get an older version of a file, you can "revert" your current version to an older version. The greatest benefit for CVS usage currently is the distributed nature of it. A single server can keep the main tree, and individual developers can all have slightly different versions in their local trees. Another advantage is that instead of having to download an entire tarball or even a single file, you just need to download the changes. The CVS client software can merge them automatically. Why do we care? Lots of Open Source projects have moved to doing all of their development from a central CVS repo. This allows for much faster integration of changes, and all developers can have "up to the minute" versions of the project they are working on. Also, it is a very useful tool for use in revision control for documents and web sites and similar situations.