r8 - 05 Jul 2004 - 22:32:57 - FrankDieboltYou are here: SuperWaba >  Codev Web  > CvsUsage

CVS basics

First of all, if you are a beginner with CVS, learn the CVS basics and more advanced features to use it efficiently.

All cvs commands references a cvs server repository, this repository and its access information can be provided through the user's CVSROOT environment variable such as ":pserver:anonymous@cvs.superwaba.net:/cvsroot/superwaba" but it can also be specified on each cvs command through the -d option.

Access information

You can find all the cvs access information on the Superwaba site.

the cvs settings are

  • protocol: pserver
  • user: anonymous
  • password: <no password>
  • host: cvs.superwaba.net
  • repository: /cvsroot/superwaba

the retrievable modules are

  • vm (virtual machine)
  • src (Superwaba sdk java sources)
  • samples (sdk samples)
  • fonts (pdb fonts)
  • SuperWabaSDK (is an alias for both modules vm & src)

Developer Access

If you are a registered SuperWaba developer, you can use SSH to check source code in as well as out. The details on using SSH keys to simplify this process are here. Do check that you have not added additional newlines to your SSH key. If you do it won't work.


Hint: Superwaba also provides a cvs web access. If you click on the following link http://cvs.superwaba.net/cgi-bin/cvsweb.cgi/, you may browse to the CVSROOT folder which holds all admin files, especially a file named modules that contains the above modules definitions.

You may also retrieve a list of modules by typing:
cvs -z3 -d :pserver:anonymous@cvs.superwaba.net:/cvsroot/superwaba co -c
(cat the module database, or the "co -s" option for module status)


Login

To login to the cvs server you have to perform a cvs login by typing :
cvs -d :pserver:anonymous@cvs.superwaba.net:/cvsroot/superwaba login
if a password prompt appears just press return because no password is required for anonymous access.

Checkout

To start working on the sources, you have to retrieve a copy on your own local storage, this process is called checkout.

First open a shell window and create a new directory that will contain the Superwaba sources:

i:\> mkdir mySandBox
i:\> cd mySandBox

Then issue the following checkout command:
(z3 is a compression request)

i:\mySandBox> cvs -z3 -d :pserver:anonymous@cvs.superwaba.net:/cvsroot/superwaba co SuperWabaSDK

and you will get the whole SuperWabaSDK directory structure on your disk

  • i:\mySandBox\SuperWabaSDK
  • i:\mySandBox\SuperWabaSDK\vm\*
  • i:\mySandBox\SuperWabaSDK\src\*
  • i:\mySandBox\SuperWabaSDK\utils\*
  • i:\mySandBox\SuperWabaSDK\samples\*
  • i:\mySandBox\SuperWabaSDK\resources\fonts\*

If you previously have unzipped the a complete SDK in the same folder you will now have a complete environment with up to date files in the src & vm folders.

Once sources have been retrieved from the cvs server, a CVS folder is created for each project folder that contains few files with location information of the sources in the repository. Thus, the CVSROOT information is not required if you run a cvs command in a folder with a CVS folder.


HINT: The -d option can be omited if you set an shell environment variable like this:
set CVSROOT
=
:pserver:anonymous@cvs.superwaba.net:/cvsroot/superwaba

You may also retrieve a specific version, (you can use a cvs client with browsing features, like eclipse or use cvsweb).

For instance, just type the command:
cvs -z3 co -r v350 SuperWabaSDK and you will retrieve the v350 versionned files.

Update

Once you have a local copy of the sources you may modify any file under source control locally. If you want to update your local copy with changes that have been commited to the repository by someone else, you can type :

cvs -z3 update

If you just want to see any CVS command result without altering any local files you may specify the cvs global -n option which disables real operations and however display the command result as if it has been executed. So if you just want to check changes without retrieving them, just type:

cvs -z3 -n update

The update command lists all files recursively that has a non standard state ? the file is not ignored (see cvs ignore features) but is not under source control.

  • "U" means the file has been updated with the latest version
  • "M" the file has been modified locally by you, and may be commited (you need write access)
  • "P" a file you also have modified has been successfully updated with changes made by someone else
  • "C" a file you also have modified cannot be automatically been updated with changes made by someone else (a manual merge is required, to integrate the changes)

As far as you use an anonymous access, you don't have write access.
That is why all cvs commit commands that developers can use to write their own changes to the repository will fail in your case.

cvs [server aborted]: "commit" requires write access to the repository

Once you have an up to date version, and even if you don't have a write access you may do changes (features addings/bug fixes) to the sources and build diff files to contribute to the Superwaba project. The diff file is created by typing:

cvs diff -u > myName_v350_date.diff

in the SuperWabaSDK root folder.

You may then submit a new patch on the SourceForge Superwaba page and don't forget to give a full description of your changes if you don't have enough comments in your source code, Guilherme will appreciate wink
don't forget neither to upload your diff file and check the little box indicating an attachement.

Basically the CVS system gives you access to specific labeled versions, development branches, let you verify changes between two versions, update your local "sandbox" with the last changes commited by other developers and generate patches to contribute to the Superwaba project.

If you make changes to the source, please annotate it as per the Building The VM section so we know who did what and when.

Well, I don't want to write a CVS tutorial at all. Many cvs tutorials are available and are much better CVS introductions than mine. The CVS reference site is http://www.cvshome.org that also contains the most valuable documentation, FAQs and tutorials ( http://www.cvshome.org/docs/ ).

I just wanted to give some basic information to non-cvs users that don't want to spent lots of time reading quite heavy CVS documentation. This is to help those who just want to know about the cvs features and how they can help the Superwaba development without getting too involved in SourceForge stuff.

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r8 < r7 < r6 < r5 < r4 | More topic actions
 
SuperWaba home
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding SuperWaba? Send feedback