HOWTO merge commits from the integration branch » History » Revision 9
Revision 8 (Loïc Dachary, 05/22/2015 10:08 AM) → Revision 9/22 (Loïc Dachary, 07/10/2015 07:20 AM)
After the [[HOWTO run integration and upgrade tests|tests successfully]] run on the [[HOWTO populate the integration branch|integration branch]]: h3. Get approval from the lead * List the pull requests that have been merged in the integration branch with something like: <pre> $ git log --oneline --merges ceph/giant..ceph/giant-backports 538d012 Merge 4214: osd/osd_types.cc: 456: FAILED assert(m_seed < old_pg_num) </pre> * 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. * Wait for all such pull requests to be approved. approved and merged. h3. Merge a pull request 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: branch. * the backport was done by the original developer of the commit * the backport was approved by the lead (see above) Merging the pull requests goes like this: * for each pull request merged in the integration branch * go to the github web interface * click on the "Merge button" * add the "Reviewed-by:" field to the input box * when all pull requests are merged **git log --no-merges $release-backports ^$release** 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 $release branch). * the $release-backports branch is reset to the $release branch to make it clear that it has been merged (git reset --hard ceph/$release) h3. Resolving the matching issue For each pull request that is merged: * go to the corresponding issue that should be listed as a link in the pull request comment * change the status of the issue to *Resolved* 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.