Monday, January 12, 2015

How to uplift changes through the various Mozilla release trees

One of my co-workers asked me a bit ago what is a clean way of uplifting patches through the different Mozilla release trees. In my case the patch is self-approved since it only affects test jobs and not the product (a=testing).

Once my change landed on one of the integration trees (e.g. mozilla-inbound, mozilla-central), I waited for it to be merged to mozilla-central (a sheriff made a note on the bug). At that point we can start the uplift process.

In particular, the changeset I want is:


I believe I have the named branches because I have the firefoxtree extension enabled.
You can read more about it in here.

I have a unified checkout from which I can manage all the various release trees (aurora, beta, release, esr31 et al).

Update the tree

We update to the right brach:
hg pull beta
hg update beta

Graft changeset

NOTE: Usage explained in here.
NOTE: Make sure you use --edit if you need to add a=testing to your commit message.

We graft the changeset, carefull check that we're pushing to the right place and push:
armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg id
774733a9b2ad beta/tip

armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg graft --edit -r a13aa1af5d75
grafting revision 249741
merging testing/config/mozharness/

armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg out -r tip beta
comparing with beta
searching for changes
changeset:   249997:93587eeda731
tag:         tip
user:        Armen Zambrano Gasparnian 
date:        Mon Jan 12 09:53:51 2015 -0500
summary:     Bug 1064002 - Fix removal of --log-raw from xpcshell. r=chmanchester. a=testing

armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg push -r tip beta
pushing to ssh://
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: Trying to insert into pushlog.
remote: Inserted into the pushlog db successfully.
remote: You can view your change at the following URL:

Repeat the same process for the remaining trees.