6. ssh services

In the interests of security, SourceForge does all its communication with logged-in users over secure encrypted channels. This is the case even for the web-based services. There are two important utilities that cannot be accessed via a web interface, but instead by using ssh, the secure shell. These utilities are the shell server and CVS.

6.1. Installing ssh

Note

Note: Debian-specific

# apt-get install ssh

Unfortunately, SSH is currently under US crypto regulations, and cannot be distributed from inside the United States to any other country. Instead, you will have to download the software from outside the US. If you are using a US Debian mirror, you will have to add a non-US mirror to your /etc/apt/sources.list, such as 'deb http://non-US.debian.org stable/non-US main contrib non-free'. Alternatively, you can use the apt-setup program from the base-config package, and be sure to select 'Use non-US software'.

6.2. The shell server

The shell server provides command line access to the SourceForge system.

Login via
$ ssh username@shell1.sourceforge.net

6.3. CVS

CVS is used to organize and store collections of files in a central repository, so that many developers can work on them at once. More than one developer can work on the same file at a time. If one change conflicts with somebody else's change, CVS will warn the second user and attempt to solve the problem.

6.3.1. Installing CVS

Note

Note: Debian-specific

apt-get install cvs

6.3.2. Using CVS for newbieDoc

Before using CVS with SourceForge you need to make sure the environment variable CVS_RSH is set to `ssh'. For bash you can set it like this:

$ export CVS_RSH=ssh

You can add this to your ~/.bashrc to have the variable set it every shell.

6.3.2.1. Check out a working copy

First of all you must check out a working copy of the repository. This contains all the newbieDoc source files. Go to the directory in which you wish your local copy to be kept, e.g. ~/cvs.
$ mkdir ~/cvs
$ cd ~/cvs

To check out a working copy, issue the command
$ cvs -d:ext:username@cvs.newbiedoc.sourceforge.net:/cvsroot/newbiedoc checkout newbiedoc
Be sure to make the obvious substitution for `username'.

6.3.2.2. Make and commit your own changes

If you make changes to a file already in the repository you will need to `commit' them so that the changes can be seen by everyone in the project and become the official copy of the file.
$ cd ~/cvs
$ cvs commit -m 'comments for this commit'

Alternatively, you can omit the -m argument ($ cvs commit). Your preferred editor, as specified in the EDITOR environment variable, will appear for you to note your changes. The commit will then continue once the file is saved.

Your comments can be a short note, summarizing your changes.

6.3.2.3. Add a new file

$ cd ~/cvs
$ emacs my_new_file.sgml
$ cvs add my_new_file.sgml
$ cvs commit

Of course, you may substitute your favorite editor for emacs.

6.3.2.4. Update your working copy

To get the changes that the other developers have added to the repository since you last checked, do
$ cd ~/cvs
$ cvs update

If a new directory has been added to the central repository since your last checkout you can do
$ cvs update -d
to get the new directory and its contents.

6.3.3. Learn more about CVS

The CVS book at http://cvsbook.red-bean.com/ has fairly comprehensive coverage.