Project

General

Profile

HOWTO populate the integration branch » History » Version 7

Loïc Dachary, 03/26/2015 11:43 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 7 Loïc Dachary
After the [[HOWTO run integration and upgrade tests|tests successfully]] run on the integration branch, the backports it contains can be merged (via github so that the pull requests are properly tagged as being merged) 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.