Updating#

In Building With Gnu Make you learned how to check out the L4Re source tree using ham. Similarly you can use ham for updating the source tree:

ham sync

This will fetch and checkout the latest changes in all repositories.

Sometimes it is necessary to reconfigure your build directories:

make oldconfig

This is the case when your compiler or some config options changed.

More Ham Functionality#

Since ham is only a wrapper around git, it has some more features you might want to use:

Print information about changes in the build tree

ham status

Repositories with changes are likely to fail the sync operation. It can be handy to see where you have to manually resolve sync failures with the status operation.

A more generic functionality is the foarall operation, which executes an arbitrary command in each repositories root directory. A different approach for syncing your source tree is the following.

ham forall -- git fetch
ham forall -p -- git rebase

Hint

The -p option prints the name of each repository before executing the provided command. This way you can directly see where conflicts occur.

Repositories All The Way Down#

In the end, these are just git repositories which you can update as you like. You don’t have to use ham. You should, however, update them all at once because APIs are used across the repos. Only update a single repo if you know what you’re doing.