This is a basic description of the CVS Repository for the SVG working group.
This document supersedes the document
/repository/svgCvs-manual.html.
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.
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:
<userid>-w3c-cvs-key
. Where <userid>
is your CVS user log in name.
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".
<userid>@cvs.w3.org/w3ccvs
. Where <userid>
is your CVS user log in
name.
"shell (:ext)"
.
"cvs.w3.org"
.
"/w3ccvs"
.
<userid>
.
"WWW/Graphics/SVG"
.
-d
option will be set by default. This
option creates any missing folders in the check out. This can be
switched off in the following way:
CVS update -d
when the default behaviour
is switched off "CVS > Update Special..." can be used.
-d
option.Where:
CVSROOT=":ssh;key='<private-key-path>':<userid>@cvs.w3.org/w3ccvs"
<private-key-path>
is the path to the
private key that was generated with the
key pair.
<userid>
is your CVS user log in name.
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.
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.
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.
add -kb <filename>
will need to used
when adding a binary file.
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>