Project

General

Profile

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

« Previous - Version 7/22 (diff) - Next » - Current version
Loic Dachary, 04/14/2015 04:27 PM


After the tests successfully run on the integration branch:

  • List the pull requests that have been merged in the integration branch with something like:
    $ git log --oneline --merges ceph/giant..ceph/giant-backports
    538d012 Merge 4214: osd/osd_types.cc: 456: FAILED assert(m_seed < old_pg_num)
    
  • Assign pull requests that have been backported and tested without interaction with the original author to the 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.
  • Wait for all pull requests to be 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 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).
  • the giant-backports branch is reset to the giant branch to make it clear that it has been merged (git reset --hard ceph/giant)

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.