How to Access WorldForge CVS

CVS FAQ

Some historic WorldForge code, provided for historical interest, is stored in CVS. If you are interested in viewing it, the following unmaintained documentation may help.

General Questions

Unix Specific

Windows Specific

Mac Specific


Q: What is CVS?
CVS stands for Concurrent Versioning System. It is used for source control and versioning of files. Normally, there is a central respository 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.
Q: Where can I get CVS?
CVS is included with modern versions of Linux or MacOSX. It is also included in the MingW package required to build WorldForge code on Windows. You should not need to download cvs separately. In case you do need to download it, keep reading. To obtain a copy of the command line cvs client, go here Also, check out the questions below for seeing about other clients for unix, windows, or macintosh.
Q: Where can I learn to use CVS?
On the CVS Manual. Searching on Google returns many tutorial links.
Q: 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
Q: Does Worldforge have anonymous CVS access?
Yes, the username and password are cvsanon. See above and replace username with cvsanon in your CVSROOT and you should be good to go.
Q. 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.
Q. 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.
Q. 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
  • Media
    • media (130MB+)
    • media-2d (590MB+)
    • media-3d (150MB+)
    • music
    • sound

A word of warning. Do not attempt to check out complete copies of the media modules. Due to a design flaw in CVS, the server attempts to load the entire module into RAM during the checkout and kills the machine. Your checkout will freeze and never complete. Browse the CVS modules using CVSWeb and check out selected subdirectories as desired, or the entire module piecemeal.

Q: 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.
Q: 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/;"
Q: 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.

Q: 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.
Q: Help! I can't get WinCVS to work! Do you have any tips?
Yes, check out our . Or better yet, use TortoiseCVS.
Q: 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!

Q: What Mac CVS Clients are available?