Project

General

Profile

HOWTO merge commits from the integration branch » History » Revision 8

Revision 7 (Loïc Dachary, 04/14/2015 04:27 PM) → Revision 8/22 (Loïc Dachary, 05/22/2015 10:08 AM)

After the [[HOWTO run integration and upgrade tests|tests successfully]] run on the [[HOWTO populate the integration branch|integration branch]]: 

 * 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 pull requests to be approved and merged. approved. 

 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.  

 * 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** 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 $release giant branch). 
 * the $release-backports giant-backports branch is reset to the $release giant branch to make it clear that it has been merged (git reset --hard ceph/$release) ceph/giant) 

 Since the merge is not from the integration branch, the commit that has been tested won't match the SHA. This 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.