# SettingUpSshCvs

This page is intended for use in collecting recipes that complement the existing documentation on using CVS on W3C servers with user contributed instructions on how to set up existing tools to establish a working environment with W3C CVS servers through ssh.

Note: CVS is only recommended for expert users. If you would prefer to use a simpler interface to edit pages on the Web site, consider WebDAV.

### SSH Key notes

SSH keys used for W3C access MUST be in the SSH 2 protocol format. There is existing documentation describing how to generate new keys. See SSH Tutorial for Linux (and Mac OS) and SSH Tutorial for Windows for instance.

## CVS Client Software

Disclaimer: W3C does not keep a list of current CVS clients. The information we provide here is added as it becomes available and is updated periodically as newer information is reported. There is a well-maintained list of clients on the Ximbiot site. You may want to compare the various available SSH clients to select the best one for your needs.

### Unix clients

#### GNU cvs

On most Unix (linux) machines, cvs is included and you can use it as a command line tool. If it was not the case on your system, you can download cvs from GNU Web site.

### Windows clients

#### TortoiseCVS

TortoiseCVS lets you work with files under CVS version control directly from Windows Explorer. To make TortoiseCVS work with SSH, follow these steps:

1. Open the TortoiseCVS settings and go to the "Tools" tab
2. Look for the row "SSH Application (only :ext:)" and make sure that "C:\Program Files\TortoiseCVS\TortoisePlink.exe" is specified there (or the directory where you have installed TortoiseCVS)
• a) If you are using Putty's Pageant then add the (Putty) public key into Pageant and you are all set to connect to the CVS server.
• b) If you are not using Pageant then you have to specify the location of your (Putty) public key with "-i c:\path\to\your\public\key.ppk" on the row "SSH Parameters (only :ext:)" in addition to the already given parameters and then connect.

Note also Jeremy's mail to configure putty.

To set up a specific server / repository, see Richard's instructions

#### Cygwin

Cygwin is a Linux-like environment for Windows. It includes CVS and OpenSSH. Dr. Thomas Baker has written a detailed description of Using CVS with SSH in a Unix-like shell environment under Windows.

Note: In my experience (Feb 2009), setting environment variables alone did not work because ssh required some additional parameters, and I had to write a shell script to supply those, setting the CVS_RSH variable to point to the script: My script (called sshw3.sh) looks like this:

         #!/bin/sh
ssh -2 -i ~/key-name.rsa $1$2 $3$4 \$5


(forcing protocol version 2, selecting the correct identity key and passing values from the CVS client which calls ssh) I then ran

         export CVS_RSH=~/sshw3.sh


#### NetBeans IDE

NetBeans IDE contains a reference that describes SSH usage with IDE.

#### Eclipse

Eclipse contains support for SSH and CVS. See Setting W3C CVS Public or Restricted Repositories for Eclipse 3.x.

### Macintosh Clients

Mac OS X is a unix BSD system, and then you can easily use CVS on the machine once you have installed Xcode Tools CD that accompanies Mac OS X. The manual Version Control with CVS on Mac OS X will easily guide you through the steps of using it. It means also that all Java GUI working for Unix will work Mac OS X as well.

#### XCode

XCode is the graphical environment development of Apple. You can use CVS from the GUI of XCode

#### BBedit

BBedit is an XHTML Editor for the macintosh which includes menu for CVS.

#### CVL

CVL (Concurrent Versions Librarian) is a version and configuration management tool for MacOS X. CVL is a graphical user interface to CVS (Concurrent Versioning System) most often used commands.

### Emacs Clients

Emacs is known to be able to do more than one thing. It is then possible to use CVS inside Emacs.

#### Emacs built in Version Control

Emacs has a built in Version Control system (for CVS, RCS and SCCS) system. There is no reason to leave emacs for the command prompt. Look under Tools menu, then Version Control or M-x vc- and then tab complete to see the options.

#### pcl-cvs mode

pcl-cvs is a GNU Emacs front-end to CVS. It can be difficult to install, if you need help, contact Ted.