Managing Commits in Trunk and Release Branches
Release Trees and Branches
- Trunk represents the next major version release of MPICH2.
- A tree represents a major version series (such as 1.3.x) and can be found in the https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release directory. As soon as trunk starts tracking the next major version series, an svn tree is created to track the current stable major version series.
- A branch represents a specific release version (such as 1.3.1) and can be found in the https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release directory. A release branch is created just before an RC release is made for that version.
Commits in Trunk
- The trunk should be a superset of all release related commits. All commits should be made to trunk first, and then merged into the release branches. An exception to this rule are commits that are obviously only related to a specific release (such as updating the maint/Version information).
Merging changes to Release Trees and Branches
- All commits that do not break the ABI string for a stable major release, should also be committed into the major release tree for as long as the release tree is maintained. For example, any commits to trunk that do not break the ABI string of the 1.3.x release series, should also be committed to the 1.3.x tree.
- The following steps can be followed for merging changes to a branch or tree:
- Create the fix in the trunk; test it and check it in. Remember the change-number, or it can be found here: https://trac.mcs.anl.gov/projects/mpich2/timeline
- Follow these steps for the release branch mpich2-X.Y.Z:
shell$ svn co https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release/mpich2-X.Y.Z shell$ cd mpich2-X.Y.Z shell$ svn merge -c <change-number> https://svn.mcs.anl.gov/repos/mpi/mpich2/trunk . shell$ svn commit