main page
download
FAQ
research notes
data sheets
schematics
hardware mods
mailing list
IRC
tools
photos
daily builds
CVS
sourceforge
linux driver


Accessing source code via CVS

Browsing the repositry

Just go here.

Daily snapshots

Every night at 6am CET, we build a source tarball and target .mod files from the latest CVS code. Get them here.

Downloading (checking out) the source

You, obviously, need to have CVS installed to do this.

The examples below use the 'firmware' module, since that's what most people are interested in. Here is a complete list of the available modules:

  • apps - the source code to the applications
  • firmware - the source code to the firmware library
  • gdb - the gdb stub to use for remote debugging
  • tools - tools for building the firmware
  • uisimulator - a user interface simulator for X11
  • www - the web page

Anonymous read-only checkout

If you are not a registered developer, use this method. When asked for a password, just press enter:

cvs -d:pserver:anonymous@cvs.rockbox.sourceforge.net:/cvsroot/rockbox login
cvs -z3 -d:pserver:anonymous@cvs.rockbox.sourceforge.net:/cvsroot/rockbox co firmware

A "firmware" directory will be created in your current directory, and all the source files go there.

Checkout for developers

For this, you need to:

  1. Have SSH installed.
  2. Have a SourceForge account
  3. Be a registered developer of the Rockbox project
  4. Log on to your cvs server account once: ssh username@cvs.rockbox.sourceforge.net
    It will disconnect you immediately, but now your account is set up.

Then run:

export CVS_RSH=ssh
cvs -z3 -d:ext:username@cvs.rockbox.sourceforge.net:/cvsroot/rockbox co firmware

If you are using WinCVS, the procedure is somewhat different.

Checking in modifications

CVS is a "no-reserve" version control system. This means that you work on your local files without first reserving them. Any conflicts with other developers are detected when you check-in, or "commit" as it's called in CVS:

cvs commit filename

This will start an editor and ask you to describe the changes you've made. If you want, you can use the -m command line option to specify the comment right there:

cvs commit -m "This is my change comment" filename

Note: Before checking in modifications, test-build all targets (player, player-old, recorder, player-sim, recorder-sim) to make sure your changes don't break anything.

Updating your repository

Since several people commit to the repository, you will need to periodically synchronize your local files with the changes made by others. This operation is called "update":

cvs update -dP

The -d switch tells update to create any new directories that have been created the repository since last update.
The -P switch tells update to delete files that have been removed in the repository.

Adding a new file

Adding a file is very simple:

cvs add filename

If you are adding a binary file, you need to specify the -kb flag:

cvs add -kb filename

These changes, like any other change, has to be committed before they will be visible on the server.

Querying the status of your files

Sometimes it is interesting to get a list of the status of your files versus those on the remote repository. This is called "status":

cvs status

The output from "status" can be rather verbose. You may want to filter it with grep:

cvs status | grep Status

To only list files who differ from the server, filter again:

cvs status | grep Status | grep -v Up-to-date

Producing a diff of your changes

If you want to see how your local files differ from the CVS repository, you can ask CVS to show you:

cvs diff -u [files(s)]

The -u selects the "unified" diff format, which is preferrable when working with source code.

What Happens in the Repository?

Subscribe to the rockbox-cvs list to get mails sent to you for every commit done to the repostory.

To join this list, send a mail to majordomo@cool.haxx.se, with the following text in the body (no subject) "subscribe rockbox-cvs".

Note that this may cause quite a few mails to get sent during periods of intense development.

Getting rid of the password prompts

Each cvs operation has to be authenticated with ssh. This is normally done by you entering your password. This gets boring fast. Instead, you can register your public ssh key with your SourceForge account. This way, your connection is authenticated automatically.

Log in to your SourceForge account and go to your account options. On the bottom of the page, there is a link to edit your ssh keys. Copy the contents of your local .ssh/identity.pub or .ssh/id_rsa.pub there.

Like many things on SourceForge, the key change doesn't take effect immediately. You'll have to wait a few hours until some magic batch job kicks in and puts your keys where they should be. Then you can use cvs without entering your password.

If you work from several different computers/accounts, you must add the key for each account you are using.


Page was last modified "Jul 3 2002" Björn Stenberg