$Date: 2008/10/07 00:58:26 $
$Revision: 1.1 $
Anthony Grasso

Connecting to SVG CVS Repository

This is a basic description of the CVS Repository for the SVG working group.

This document supersedes the document /repository/svgCvs-manual.html.

  1. Introduction
  2. Getting Started
  3. Minuting Meetings

Introduction

The basic instructions for getting authorized and connected, as well as for getting a usable CVS client can be found in the "Getting Started" section of this document. These instructions can also be found in a separate text file in W3C SVG Working Group Repository at http://www.w3.org/Graphics/SVG/Group/repository/docs/CVS Howto.txt . This text file supersedes the /Welcome.txt and /repository/Welcome.txt text files in the SVG Working Group repository.

The illustrations in here are a mixture of TortoiseCVS GUI and CVS command line.

Before using the CVS repository you will need to get access to the repository. Please read the "Use of CVS in W3C" document located at http://www.w3.org/Project/CVSdoc before reading any further.

References and Resources

  1. TortoiseCVS client: http://www.tortoisecvs.org
  2. WinCvs client: http://www.wincvs.org
  3. WinCVS. A simple CVS client for Windows and other systems (per DJ): http://www.cvshome.org
  4. CVSNT client. A CVS command line client: http://www.march-hare.com/cvspro
  5. A simple SSH client tools for Windows and Linux: http://www.chiark.greenend.org.uk/~sgtatham/putty
  6. A simple text comparison tool that can be used with TortoiseCVS: http://www.prestosoft.com/ps.asp?page=edp_examdiff
  7. CVS manual (non-downloadable; but has error message appendix, and there have found a couple of bits of information that seem newer and more complete): http://www.cvshome.org/docs/manual/index.html
  8. Reference from Darryl: http://www.oreilly.com/catalog/cvspr/

Getting Started

The programs used in this set up example are:

Before going any further obtain the above software from their respective links.

Points to note about the CVS account creation:

Creating a Public Private Key Pair

To create the key pair use PuTTYgen.

  1. At the bottom of the PuTTYgen select SSH-2 RSA as the "Type of key to generate".
  2. Set the "Number of bits in a generated key" to 1024.
  3. Click the "Generate" button.
  4. Move your mouse around in the black area to generate randomness for the key.

  5. Fill in the "Key comment" with a useful comments such as <userid>-w3c-cvs-key. Where <userid> is your CVS user log in name.
  6. Fill in the "Key passphrase" and "Confirm passphrase" with a password you will remember. There are currently no restrictions on key passphrases.
  7. Click the "Save public key" to save the public key. This key is to be emailed to the staff contact applying for your account.
  8. Click the "Save private key" to save the private key. This key will be used when performing any CVS operations on the W3C SVG repository.

To obtain a CVS account you'll need to contact the staff contact (currently Chris) copying the co-chairs of the SVG working group (Chris Lilley, Nandini Ramani Nandini Ramani). The account will be created when the staff contact submits a request for you using the Account Request Form: http://www.w3.org/Systems/Accounts/w3t/ selecting "Account type: > Web Repository on cvs.w3.org".

TortoiseCVS

TortoiseCVS is a windows application that hooks in to windows explorer. It marks the file icons with smaller icons to indicate the status of the file in comparison with the archive. The software is quite intuitive and very robust.

SSH agent

The SSH agent must be running when using TortoiseCVS to perform any CVS operation on the W3C SVG archive.
  1. Run the Pageant executable. A Pageant icon will appear in the icon tray in the right hand corner.
  2. Double click on the Pageant icon. This will bring up the Pageant Key List.

  3. Click the "Add Key" button.
  4. Browse to your private key that was generated with the key pair and open it.
  5. You will be prompted to enter the "Key passphrase". This will be the passphrase used when the key was generated. Enter your password then click "Ok" The private key will then be added to the Pageant Key List.

CVS checkout with TortoiseCVS

To perform a CVS checkout you'll need to set up TortoiseCVS.

  1. In Windows explorer right click in the file list area and select "CVS checkout..." from the drop down menu. This will bring up a TortoiseCVS Checkout Module window.

  2. Set the CVSROOT text box to <userid>@cvs.w3.org/w3ccvs . Where <userid> is your CVS user log in name.
  3. Set the Protocol parameters in the drop down box to "shell (:ext)".
  4. Ensure that the Server text box is set to "cvs.w3.org".
  5. Ensure that the Repository folder text box is set to "/w3ccvs".
  6. Ensure that the User name text box is set your <userid>.
  7. Set the Module combo box to "WWW/Graphics/SVG".
  8. Click the "Ok" button. This will begin the CVS check out.

Notes about TortoiseCVS

CVSNT

CVSNT is an open source command line client. It operates on a variety of platforms.

To perform any operation with CVS NT on the W3C SVG repository, the CVSROOT must be specified in either
If setting the CVSROOT in the environment variables it must be set as follows:

CVSROOT=":ssh;key='<private-key-path>':<userid>@cvs.w3.org/w3ccvs"

Where:
If setting the CVSROOT in the command line when performing a CVS operation it must be set as follows:

cvs -d :ssh;key='<private-key-path>':<userid>@cvs.w3.org/w3ccvs <cvs-command>

Setting the CVSROOT on the command line will override the CVSROOT specified in the environment variables.

WinCVS

Setting up WinCVS

Need to add some details here.

Bugs and Quirks

There is a bug having to do with 'AddFolder'. If you use the WinCvs AddFolder button or menu item, it will convert your names to upper case. This can make it hard to find your folders, if you don't know it has happened. This does not happen if you instead enter the command: add <foldername> from CvsAdmin->CommandLine.

Note. With the current CVS structure, you shouldn't have to add folders.

Generally, WinCvs GUI is solid and easy to use -- and pretty powerful in some activities -- on the usual stuff like checkout, edit, commit. It is on the archive and hierarchy creation side where there have been issues.

There are quirks. It has been know to get into deadlock state where you can't do checkouts that should be perfectly okay, not by command line, not by GUI. A serious incident, it was resolved by deleting (actually moving) local copies of the directories, complete with the Cvs/<control-files> subdirectory. When WinCvs was closed and restarted, all work okay again.

Repository

Beware Binary Files!

Care should be taken when dealing with binary files in the repository. The CVS repository knows about the following binary file types.

gif, gz, jpg, jar, pdf, doc, png, tgz, zip

The repository knows that the above file types are binary when a checkout or commit is performed. (There is a file, CVSROOT/cvswrappers, where these are declared).

However, you must be careful when adding new files. Depending on your CVS client you may have to specify that the file is binary.

Watches - Notification of Changes

It is possible for any CVS user to add themselves to a notification list, with the standard CVS watch command, so that you will be notified by email when files of interest to you (e.g., test cases you own) are changed.

cvs watch add <files>

will add you to a list of people who are notified (by email) of significant events ('commit' changes, for all practical purposes) to a list of files. If <files> contains a directory name, then all files in that directory, and recursively in sub-directories, will be watched for changes. There are some options (which probably aren't all that interesting in our application -- see a CVS manual).

If you want to turn off the watch:

cvs watch remove <files>