VPP/Working with the 16.06 Throttle Branch

From fd.io
< VPP
Revision as of 02:48, 17 May 2016 by Chrisluke (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.