Project

General

Profile

HOWTO populate the integration branch » History » Revision 6

Revision 5 (Loïc Dachary, 03/26/2015 11:42 AM) → Revision 6/31 (Loïc Dachary, 03/26/2015 11:42 AM)

Before a backported commit can be merged into the release branch, it must be tested in an integration branch. It serves two purposes: 

 * Detect trivial problems that would break the upgrade tests run on the release branch (they are run at the tip of the branch, not at the latest point release) 
 * Do not pollute the release branch with reverted commits (because it cannot be rebased) 

 The snippet at http://workbench.dachary.org/dachary/ceph-workbench/issues/4 can help 

 * create a giant-backport branch if it does not already exists 
 * reset it to ceph/giant 
 * fetch all pull requests from github 
 * git merge all pull requests 
 * modify the pull requests individually to fix merge conflicts (i.e. they must merge cleanly, which may involving aggregating two pull requests into a single one designed to properly resolve the conflict) 
 * compile with ./autogen.sh ; ./configure ; make -j4 
 * modify the pull requests individually to fix compilation errors 

 After the [[HOWTO [[tests successfully|HOWTO run integration and upgrade tests|tests successfully]] tests]] run on the integration branch, the backports it contains can be merged (github) into the release branch. It should be merged with a script instead of manually via the github web interface to avoid mistakes: **git log --no-merges giant-backports ^giant** must be empty (i.e. the integration branch must have nothing left except diverging merges because all cherry-picked commits are now found in the giant branch). Since the merge is not from the integration branch, the commit has won't be an exact match.