This is an introduction to ssh (secure shell) and cvs (concurrent version system), as used by the SEUL project. It is meant to help get developers started with using cvs quickly, and point them in the right directions for more info that will be necessary to fully utilize the power of this development system. This document assumes some knowledge of the general layout of the SEUL project servers (see the general FAQ for more info), and focuses on describing how to actually get ssh/cvs set up and running, to access and operate on SEUL source code and other documents.
What is this?
CVS is the version control system used by the SEUL project. RCS and SCCS are other common version control systems that you may be familiar with. These are all systems that allow a development team to keep a central repository of sources, which may then be checked out by various developers, modified, and checked back in to the main repository.
Version control systems also allow operations which help keep track of source modifications over time, such as listing differences between revisions of files, and tagging sets of files that constitute a complete software release. They also resolve issues (to some degree) that arise when multiple developers want to work on the same file simultaneously. RCS forces locking of files, so that only one person can work on a file at once. CVS, however, recognizes that with proper planning and communication there is no reason multiple people can't work on one file at once. So CVS allow any number of copies of the same file to be worked on at once, and implements methods for merging changes, as well as some support for watching who is editing what, to avoid surprise conflicts. However, it is important to keep in mind that CVS will not do everything for you, and most notably is not a replacement for communicating with other developers working on your project.
More information on CVS can be found in the official CVS documentation. This may be found in /usr/doc/cvs-*/cvs.ps on a system with cvs installed, in the ftp pub dir on cran (eventually), and a slightly outdated html version is on the web at http://hill.ucs.ualberta.ca/Documentation/cvs-1.8.1/cvs_toc.html. If you plan on working on the SEUL project extensively, you should probably read through that document eventually, or at least refer to it when you're not sure how some part of CVS works.
For now, a quick intro for getting started with CVS as related to SEUL may be found below. However, it is not meant to replace the full documentation, but merely to offer a quick-start for using CVS for SEUL development.
What is CVS?
CVS automatically supports remote access to a repository, so you can check out files on the the SEUL CVS server directly from your own development machine. By default, it uses the rsh program to do this, though that can easily be overridden. SEUL replaces the rsh connection with ssh.
Ssh (secure shell) is a secure replacement for rsh/rlogin (remote shell/login). Like rsh/rlogin, it allows a user on a remote machine to start a login shell on a server machine, or to just execute a single command on the remote machine. In addition, ssh provides authentication to make sure the machines connecting to each other really are who they claim, and RSA-like encryption of all communication. These are important to the SEUL project, since developers get direct access to the CVS repository, and unlike common most companies/projects that use CVS, we can't simply put all our developers behind a firewall to prevent random people from getting in and messing things up, while pretending to be legitimate developers (this is trivial to do with rsh, since rsh is notoriously insecure).
The price we pay for ssh is that it takes more than one simple line of text editing to make it work, but the rest this document should help you get things set up pretty easily nevertheless. And it is worth the larger benefits gained. Rsh is actually disabled on the cvs server, and if you ever need to login directly to the machine, we recommend you use ssh, not telnet. Telnet will probably also be disabled soon.
This document is merely a quick introduction to get ssh running, so you can use SEUL cvs services. You will probably want to do some additional reading to get a better idea of how ssh actually works. The places to look for more documentation are:
What is ssh?
Here are the basic steps for setting up ssh/cvs to access the SEUL repository. They assume you are using a Linux machine. If not, some of these instructions may be a bit inaccurate. So far, we have successfully set up cvs access on Redhat Linux machines. If you have particular good or bad experiences with other platforms, let us know.
(These instructions are not the greatest. But they will be improved as soon as someone has time for it.)
Now you are ready to use CVS. Here are a few basic operations and tips. To really learn CVS, however, you should look at the CVS reference docuementation cited above.
How to set up ssh/cvs to access SEUL repository