Project

General

Profile

HOWTO merge commits from the integration branch » History » Version 7

Loïc Dachary, 04/14/2015 04:27 PM

1 2 Loïc Dachary
After the [[HOWTO run integration and upgrade tests|tests successfully]] run on the [[HOWTO populate the integration branch|integration branch]]:
2 2 Loïc Dachary
3 6 Loïc Dachary
* List the pull requests that have been merged in the integration branch with something like:
4 6 Loïc Dachary
<pre>
5 6 Loïc Dachary
$ git log --oneline --merges ceph/giant..ceph/giant-backports
6 6 Loïc Dachary
538d012 Merge 4214: osd/osd_types.cc: 456: FAILED assert(m_seed < old_pg_num)
7 6 Loïc Dachary
</pre>
8 5 Loïc Dachary
* Assign pull requests that have been backported and tested without interaction with the original author to the [[HOWTO#Leads|lead]] because (s)he is the one deciding if the backport is good enough. Although a discussion with the lead could be engaged before testing, it is less work for a busy lead to review a backport that is known to pass integration tests.
9 5 Loïc Dachary
* Wait for all pull requests to be approved.
10 2 Loïc Dachary
11 2 Loïc Dachary
The backports from the integration branch can be merged (via github so that the pull requests are properly tagged as being merged) into the release branch. 
12 1 Loïc Dachary
13 1 Loïc Dachary
* for each pull request merged in the integration branch
14 1 Loïc Dachary
* go to the github web interface
15 1 Loïc Dachary
* click on the "Merge button"
16 1 Loïc Dachary
* add the "Reviewed-by:" field to the input box
17 5 Loïc Dachary
* when all pull requests are merged **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).
18 7 Loïc Dachary
* the giant-backports branch is reset to the giant branch to make it clear that it has been merged (git reset --hard ceph/giant)
19 1 Loïc Dachary
20 1 Loïc Dachary
Since the merge is not from the integration branch, the commit that has been tested won't match the SHA which is inconvenient when trying to figure out if a mistake has been done. The content of the integration branch should be merged with a script instead of manually via the github web interface to avoid mistakes.