Now let's take a look at the practical details. The format of the local manifest file follows the standard manifest format described in the manifest-format.txt file under .repo/repo/docs in the Android Open Source project. To create a local manifest add a file with the name local_manifest.xml and place it directly in the .repo folder of your Android Open Source Project. It will be parsed by repo as part of a normal repo sync.
I keep a project on machine to track the latest development in the Android platform. It is setup to track the current master branch in the default configuration. Since I often work with hardware as well I am also interested in developments in the kernel. Currently there are a number of different kernel trees being run as part of android. None of them are part of the default manifest. In my setup I want to track the common kernel but also see what is going on with hardware support for Qualcomm (msm) and TI (omap) platforms. These are all maintained by the android team and I can use the default remote site to get them. I need however to inform repo about what branch I want to track by adding the revision tag. For each project add a tag like this:
<project path="kernel" name="kernel/common" remote="korg" revision="android-goldfish-2.6.29"/>
Another thing I also find myself using is Busybox and since I set it up the build config and do some adaptations when using it with Android I like to track the source for that as well within my Android tree. This can easily be achieved in the local manifest by adding a new remote site for Busybox and then adding the project itself like this:
<remote name="busybox" fetch="git://git.busybox.net/"/> <project path="busybox" name="busybox" remote="busybox"/>To sum things up this means that each time I do a repo sync I will get the latest version of the Android Open source project and also updated repositories for the three different kernel trees that I track and an updated busybox source. All in all my local_manifest file looks like this:
<?xml version="1.0" encoding="UTF-8"?> <manifest> <remote name="busybox" fetch="git://git.busybox.net/"/> <project path="kernel" name="kernel/common" remote="korg" revision="android-goldfish-2.6.29"/> <project path="kernel_msm" name="kernel/msm" remote="korg" revision="android-msm-2.6.32"/> <project path="kernel_omap" name="kernel/omap" remote="korg" revision="android-omap-2.6.32"/> <project path="busybox" name="busybox" remote="busybox"/> </manifest>