VPP/Working with the 16.06 Throttle Branch
Contents
Intro
vpp's branching structure currently is:
----------- master ----------------------------> \ \------ stable/1606------->
The master branch is where the bulk of development takes place.
The stable/1606 branch is the 'throttle' for preparing the 16.06 release. Only bug fixes should go into stable/1606.
Bug fixes that *should* be in stable/1606 should be merged into stable/1606 before being merged into master (at least until 16.06 is released).
How to get the stable/1606 branch
From your current git repo, you should be able to simply do a
git pull
which will pull down the new origin/stable/1606 and create a local stable/1606 branch. Then just
git checkout stable/1606
How to push code to stable/1606
From any branch you created from stable/1606, you just need to do a
git review
Understanding why 'git review' just works
It can be helpful to understand why 'git review' works. In vpp/.gitreview there is useful metadata to help git-review. On the stable/1606 branch, that files contents are:
oberon:vpp hagbard$ cat .gitreview [gerrit] host=gerrit.fd.io port=29418 project=vpp defaultbranch=stable/1606
The 'defaultbranch=stable/1606' tells git-review the branch to which to push your changes. As long as that value is set in your .gitreview, your patches will go to stable/1606. If that value is not set (as it isn't in .gitreview on master), your changes go to master.
Since any commit you do that is on a branch off of stable/1606 *locally* should have the correct .gitreview, you *probably* don't have to think about it to much :)
Cherry picking in the gerrit UI
If you push a patch to a branch in gerrit, you can, from the gerrit web UI, you should have a 'Cherry Pick' button near the 'Rebase' button that will allow you to cherry-pick that gerrit to a different branch (thus creating a new gerrit to be removed). Naturally, this can only work if the cherry-pick can be done without manual corrections.