Using GIT

Many ROX applications are developed using the GIT version control system. This is how we keep track of each change to the code (who made it, when and why), alternative lines of development (for trying out new features) and which versions correspond to official releases.

For example, you can click here to view ROX-Filer's repository in your browser, which will show you what we're up to at the moment:

To get the current developer version of a program, you'll need to install GIT itself. e.g. use something like this (on Ubuntu):

$ apt-get install git-core gitk

(gitk is a largish visualisation tool and is not strictly necessary, but highly recommended).

Start by cloning my repository, which will create a new directory called "rox-filer":

$ git clone git://
$ cd rox-filer

The directory contains the latest version (as with a subversion checkout), ready to compile. There's also a hidden .git directory with all the git-related bits (just in the top-level directory, not one in each sub-directory like with .svn).

To see the log:

$ git-log

This doesn't require network access; your checkout has the whole history.

To view a visualisation of the history:

$ gitk --all

(--all shows the history of all branches and tags, not just the main trunk)

Here's an example:

gitk screenshot

Versions nearer the top are more recent. This is showing us that since version 2.8 (near the bottom) a "GIO" development branch split off to test using the GIO library for file access. Meanwhile, the main trunk of development (master) continued (splitting and rejoining as different developers worked in parallel). Finally, a "fam" branch holds an unreviewed patch which might get accepted onto "master".

You can click on any commit message to see the diff and/or the state of any file in that version. It has good (and fast!) searching too.

Fetching updates

To download the latest updates into your copy:

$ git pull

You can also full from other places. If someone posts to the mailing list, they will tell you where to pull from to try the feature out.

Making patches

See Patches and feature requests for details.

Further reading

Git has very good documentation, e.g.: