Project

General

Profile

HOWTO populate the integration branch » History » Version 5

Loïc Dachary, 03/26/2015 11:42 AM

1 3 Loïc Dachary
Before a backported commit can be merged into the release branch, it must be tested in an integration branch. It serves two purposes:
2
3
* 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)
4
* Do not pollute the release branch with reverted commits (because it cannot be rebased)
5 1 Loïc Dachary
6
The snippet at http://workbench.dachary.org/dachary/ceph-workbench/issues/4 can help
7
8 2 Loïc Dachary
* create a giant-backport branch if it does not already exists
9
* reset it to ceph/giant
10 1 Loïc Dachary
* fetch all pull requests from github
11
* git merge all pull requests
12
* 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)
13
* compile with ./autogen.sh ; ./configure ; make -j4
14
* modify the pull requests individually to fix compilation errors
15 4 Loïc Dachary
16 5 Loïc Dachary
After the [[tests successfully|HOWTO run integration and upgrade 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.