CVS

From WorldForgeWiki
Jump to: navigation, search

This FAQ is based on http://worldforge.org/doc/faq/cvs

What is CVS?

CVS stands for Concurrent Versioning System. It is used for source control and versioning of files. Normally, there is a central repository of files called a pserver, which can be accessed by any cvs client. The clients can then retrieve a copy of the repository called a sandbox. The user than can manipulate the files within the sandbox and when they have been updated, the files can then be resubmitted to the server and the changes added back into the repository. This is called a commit or checkin. Any number of files can be checked in at a time. In addition, any number of users may retrieve a sandbox and commit updates to the repository. A system like this is critical for a distributed project like WorldForge.

Directories

TODO: FIXME Explain how the repository is configured

How do I configure CVS to work with WorldForge?

Server Name (development): cvs.worldforge.org Server Name (media): jasper.worldforge.org Server Type: pserver Repository Directory: /home/cvspsrv/worldforge

   So, your CVSROOT should look like:
   :pserver:username@cvs.worldforge.org:/home/cvspsrv/worldforge
   Where you replace username with the username provided when requested your account. If you don't have an account, either try anonymous access or request one.
   If you don't know what CVSROOT means, then probably you should check out this link 

Connect and checkout from CVS anonymously

This is an example for Cyphesis-C++, but it work with all the WorldForge CVS repository.

Make a directory somewhere where you want to put the Cyphesis sources. cd to this directory. Then do

$ cvs -d :pserver:cvsanon@cvs.worldforge.org:/home/cvspsrv/worldforge login 

It will ask for a password, enter "cvsanon". After that, enter this command:

$ cvs -d :pserver:cvsanon@cvs.worldforge.org:/home/cvspsrv/worldforge checkout forge/servers/cyphesis-C++/

This will give you a new directory "cyphesis-C++".

General Questions

Where can I get CVS?

To obtain a copy of the command line cvs client, go here[1] (NOTE: There is a link on this page that goes to the old download page that has the various binaries for different platforms) Also, check out the questions below for seeing about other clients for unix, windows, or macintosh.

Where can I learn to use CVS?

On the CVS Manual. Searching on Google returns many tutorial links.

How do I get a Worldforge CVS account?

Please send email to the CVS Account email address providing a username you wish to use (lowercase and no more than 8 characters), and a unix crypt password for your cvs login. You don't need a CVS account if you only want to download code and play with it. See the anonymous cvs user faq answer to just do that. If you intend on contributing, then you should get an account. To crypt a password, either:

  • run mkpasswd PASSWORD SALT
  • run perl -e 'print crypt ("PASSWORD", "SALT");'
  • Go onto WorldForge IRC and /msg brenda crypt PASSWORD:SALT

In all of these cases, PASSWORD is your password, and SALT is two random characters. You don't have to remember your crypted password after you send it off.

What is available on the Worldforge CVS server?

There are quite a few modules in the Worldforge CVS server as well as a number of aliases to code in the server. To get the full list, just do a cvs checkout of CVSROOT/modules. This file contains comments listing all the actual modules, and also is where all the aliases are defined. The infra team keeps this updated fairly regularly, so it should be highly useful. That being said usually there are only a few modules most used, thought they are quite large, so using aliases or doing direct checkouts is suggested.

There's also a web interface available at http://purple.worldforge.org/repositories/cvs/ which can be used to browse the repository. Remember that this might not always be completely up to date since it needs to be synced to the main repository at regular intervals.

What is the policy on CVS commits?

Don't step on any toes. Ask someone listed in the AUTHORS before committing to any subproject. If you can't reach anyone in the AUTHORS file, ask on the general@ mailing list to make sure the project is abandoned.

  • Code
    • forge (250MB+)
    • metaserver

Unix Specific

Are there alternate clients to commandline CVS?

  • Cervisia and LinCVS are both graphical frontends to the actual commandline cvs built with the QT library
  • TkCVS is also graphical frontend for the commandline tool, except it is made using Tcl/TK
  • Pharmacy is a Gnome based GUI for the commandline.
  • jCVS is a java based client. If you can get a jvm for your *nix flavor, then you're good to go with this one.

I checked out the 'foo' module as 'cvsanon' but now I'm using 'bar' for my CVS user name. Is there any way to change the user name associated with my CVS sandbox so I don't have to check everything out again with my new user name?

  • We've found the following command will change the user name in your CVS sandbox from cvsanon to bar:
         find foo -regex .*CVS/Root -print0 | xargs -0 perl -p -i.orig -e "s/cvsanon/bar/;"

I'm having trouble setting the CVSROOT environment variable for my particular shell can you tell me what to do?

  • Bash - Place the following line in ~/.bash_profile (if it doesn't exist create it) replacing "username" with your CVS username.
         export CVSROOT=:pserver:username@cvs.worldforge.org:/home/cvspsrv/worldforge
         After editing the file as specified above log out of your shell and log back in. You should be able to log in to CVS now w/o manually setting the CVSROOT.
  • C Shells (csh tsch etc) - Place the following line in ~/.login (if it doesn't exist create it) replacing "username" with your CVS username.
         setenv CVSROOT ":pserver:username@cvs.worldforge.org:/home/cvspsrv/worldforge"
         After editing the file as specified above log out of your shell and log back in. You should be able to log in to CVS now w/o manually setting the CVSROOT.

Windows Specific

What Windows CVS Clients are available?

  • The recommended Windows GUI client is TortoiseCVS. It features Explorer integration and GUI configuration and is under active development. To get started with TortoiseCVS, install it and then right click in a directory you want to put a module and choose CVS Checkout from the menu. TortoiseCVS will pop up a dialog where you can fill in the pserver information provided above.
  • The commandline cvs for windows is available off of the CVS Home website
  • WinCVS is a popular windows client built with C++ and Tcl/Tk
  • jCVS is a java based client that can be used if the java vm is available on your windows machine.

Help! I can't get WinCVS to work! Do you have any tips?

Yes, use TortoiseCVS.

Tortoise CVS Tips

...

How do I setup the Windows CVS command line client?

You'll need to set the environment variable CVSROOT. In Windows 9x/ME this is done in autoexec.bat by inserting this line in your autoexec.bat:

   set CVSROOT=:pserver:yourusername@cvs.worldforge.org:/home/cvspsrv/worldforge

In Windows NT/2000/XP this is done in the GUI in different places. You'll also likely have to set a HOME environment variable. I do set HOME=C:\ and then put an empty file called .passwd in C:\ You should be all set now!

Mac Specific

What Mac CVS Clients are available?

Eclipse Specific

How do I set up Eclipse CVS?

  • In Eclipse go to File-->Import
  • Select "Checkout Projects from CVS" -->Next
  • Select "Create a new Repository"-->Next
  • Enter the Host, path, user, password, and connection type is "pserver".-->Next
  • Select "Use an existing module", then fish for the module you want-->Next
  • Select "Check out as project in the workspace", then choose a name-->Next
  • FIXME: Select any tags you want.
  • Finish