Accessing the ERTOS Version Control Repository
ERTOS uses a GNU Arch version control repository to coordinate our development. The main repository is public, so you can keep pace with development as it is done by checking out our tree.
The public repository is called ertos@nicta.com.au--public.
It is available at http://ertos.nicta.com.au/arch/public/
To use this archive, you need to install a GNU Arch client, such as baz (Bazaar 1, not Bazaar 2, which is bzr) from bazaar.canonical.com. We recommend the baz implementation of GNU Arch, as it is faster and implements more useful features. The example commands here will be for baz. Expect the required tla commands to be similar but sometimes different.
Firstly, register our archive with:
baz register-archive http://www.ertos.nicta.com.au/arch/public/
You should see a message saying that ertos@nicta.com.au--public is
now registered. If you run baz archives the location
of the ertos repository should be indicated.
You can now get the latest committed version of, say, the
build-tools package, with:
baz get ertos@nicta.com.au--public/build-tools--devel
To get the latest public release of the iguana-project, use:
baz get ertos@nicta.com.au--public/iguana-project--devel
However, this will not download all of the files for the iguana
project. This step downloads the base packages, which contains
certain top level objects such as the top level build system, and
also a list of packages. This allows the iguana project to use
the same packages as are in development in other projects at the
same time. To populate the tree with the other packages, enter
the iguana-project directory and use:
baz build-config packages
You should now have the same files available as you would had you retreived the tarball. The following sections will assist you in making use of other features of arch.
User setup
If you ever want to use baz to check anything in, make sure
you've set your id, essentially your email address, e.g.:
baz my-id Bruce Wayne <bruce@wayne-enterprises.com>
Revision Libraries
By default these pristine copies are stored with each checkout. If you have
lots of checkouts this can be quite wasteful. To avoid this GNU arch has
revision libraries. A revision library will store pristine copies that will be
shared between multiple checkouts.
To setup a revision you should do something like:
$ mkdir ~/arch.library
$ baz my-revision-library ~/arch.library
$ baz library-config --greedy --non-sparse ~/arch.library
* library /home/you/arch.library
greedy? yes
sparse? no
$
Setting a library as greedy means GNU arch will automatically add new version to the revision library. (Otherwise you would need to explicitly add version, which isn't so useful.) The sparse option means that it will only download the requested version. (By default it will download all versions up to the requested version. This isn't as bad as you might think because hard links are used to compress the directories.)
Tracking Updates
In most cases, you can stay abreast of updates happening
on the archive with a simple
baz update.
However, the projects which consist of multiple packages are not so straightforward to update. A shell script is supplied in the build-tools package called tla_config.sh. It was originally designed to support tla, so, to use baz:
export TLA=baz
The effect of tla_config is to run a tla/baz command in every package in the project, so for instance to run baz update in every one of the packages listed in the 'packages' file do:
tools/tla_config.sh packages update
Sometimes packages are
migrated, in which case tla_config will report a switch
needs to be run.
To have the switch run automatically, do:
export BAZ_ALWAYS_UPDATE=yes

