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

Loic Dachary, 07/10/2015 08:08 AM

1 2 Loic Dachary
After the [[HOWTO run integration and upgrade tests|tests successfully]] run on the [[HOWTO populate the integration branch|integration branch]]:
2 2 Loic Dachary
3 9 Loic Dachary
h3. Get approval from the lead
4 9 Loic Dachary
5 6 Loic Dachary
* List the pull requests that have been merged in the integration branch with something like:
6 6 Loic Dachary
7 6 Loic Dachary
$ git log --oneline --merges ceph/giant..ceph/giant-backports
8 6 Loic Dachary
538d012 Merge 4214: osd/ 456: FAILED assert(m_seed < old_pg_num)
9 8 Loic Dachary
10 1 Loic 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. Ask to the [[HOWTO#Leads|lead]] if the pull request can be merged by adding a message to the pull request with a URL to the test results.
11 9 Loic Dachary
* Wait for all such pull requests to be approved.
12 2 Loic Dachary
13 9 Loic Dachary
h3. Merge a pull request
14 1 Loic Dachary
15 9 Loic 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 if:
16 9 Loic Dachary
17 9 Loic Dachary
* the backport was done by the original developer of the commit
18 9 Loic Dachary
* the backport was approved by the lead (see above)
19 9 Loic Dachary
20 9 Loic Dachary
Merging the pull requests goes like this:
21 9 Loic Dachary
22 1 Loic Dachary
* for each pull request merged in the integration branch
23 1 Loic Dachary
* go to the github web interface
24 1 Loic Dachary
* click on the "Merge button"
25 8 Loic Dachary
* add the "Reviewed-by:" field to the input box
26 10 Loic Dachary
* when all pull requests are merged **git log --format='%H %s' --graph ceph/$release..ceph/$release-backports** must not show any commit (i.e. the integration branch must have nothing left except merge commits because all cherry-picked commits are now found in the $release branch).
27 1 Loic Dachary
* the $release-backports branch is reset to the $release branch to make it clear that it has been merged (git reset --hard ceph/$release)
28 1 Loic Dachary
29 9 Loic Dachary
h3. Resolving the matching issue
30 9 Loic Dachary
31 9 Loic Dachary
For each pull request that is merged:
32 9 Loic Dachary
33 9 Loic Dachary
* go to the corresponding issue that should be listed as a link in the pull request comment
34 9 Loic Dachary
* change the status of the issue to *Resolved*
35 9 Loic Dachary
36 9 Loic Dachary
Note: Since the merge is not from the integration branch, the commit that has been tested won't match the SHA. This 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.