Using a fallback branch to overcome poor choice of repository branch names

I know that we have looked at fallback branches before, but this really is worth looking at again. Last time, we saw an instance where there was not a branch available that was new enough for what we were trying to build. E.g., building a Lollipop version of Android, with only KitKat trees available. This time, however, we have a case of “mistaken” identity. Check it out:

Calculated revision: lp5.1-layers
Default revision: android-5.1.1_r24
Default revision android-5.1.1_r24 not found in android_device_samsung_jfltetmo. Bailing.
Branches found:
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/ *** Can not locate config makefile for product “liquid_jfltetmo”. Stop.

** Don’t have a product spec for: ‘liquid_jfltetmo’
** Do you have the right repo manifest?

Here we are trying to build a Lollipop version of Android, and it is looking for a branch called lp5.1-layers, but will use the default of android-5.1.1_r24 if it is available. It couldn’t find it, however, because in the source I am refering too, the branch is called lollipop instead. Now, you and I know that Lollipop and 5.1.1 are the same thing, but the compiler and repo tools do not. So, here’s how we fix it, by using a fallback branch option, except instead of “falling back” to an old revision, we are “falling back” to the current revision under a different name:

alaskalinuxuser@AlaskaLinuxUser-HP-Compaq-6715b:~/Documents/projects/phones/compile/Liquid5$ export ROOMSERVICE_BRANCHES=lollipop
alaskalinuxuser@AlaskaLinuxUser-HP-Compaq-6715b:~/Documents/projects/phones/compile/Liquid5$ brunch jfltetmo
————Edited for space————-
Device jfltetmo not found. Attempting to retrieve device repository from LiquidSmooth-Devices Github (
Found repository: android_device_samsung_jfltetmo
Checking branch info
Calculated revision: lp5.1-layers
Default revision: android-5.1.1_r24
Using fallback branch: lollipop
Adding dependency: LiquidSmooth-Devices/android_device_samsung_jfltetmo -> device/samsung/jfltetmo
Syncing repository to retrieve project.
Fetching project LiquidSmooth-Devices/android_device_samsung_jfltetmo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0

Now it “found” it! Using the fallback branch is a great way to overcome all of the different naming conventions out there.

Linux – keep it simple.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s