|
Use Case Scenarios
Use Case #1 : Continuously Merge Service Pack Branch to the Trunk
Your team has just shipped a major release of your product. To support future bug fixes and minor enhancements, your create a service pack branch to hold these code changes.
Meanwhile, the rest of the development team continues on with the development of the next major product version, using the trunk of the repository for these code changes.
Any bug fixes made in the service pack branch should also be propagated to the trunk, so that they also make it into the next version. Using MergeMagician, you configure a
continuous merge subscription from the service pack to the trunk. As developers check code into the service pack, MergeMagician automatically propagates the changes to the trunk.
Use Case #2 : Using Feature Branches with Continuous Integration
You've identified three major features that you want incorporated into the next version of the software. All of these features involve significant changes to the source code,
as well as the development of new documentation. We'll call these features A, B, and C.
Because these features involve significant changes, you create three branches in your SCM repository, one for each feature. However, you don't want to wait until the very end of
the project ot perform an integrated test of the combined feature set, so you create a fourth branch to hold the combined features. This is a temporary branch that will be used
only for building and testing the integrated whole. Using MergeMagician, you create three subscriptions for the combined branch, one for each feature. MergeMagician will then
automatically merge the three features into the temporary branch. You configure your continuous integration server to build against the temporary branch, as well as the individual
feature branches. As new code is developed, the combined solution is automatically rebuilt, and any merge conflicts are resolved along the way.
Now suppose that features A and B are completed, but feature C is taking a lot longer than expected. Management decides to ship the product with only the new features A and B,
while deferring feature C until the next major version. Because the features were kept separate, this can now be easily accomplished. Create a new temporary branch for features
A+B, use MergeMagician to automate the merge, do your final testing, and ship the product. When the product ships, merge the A and B branches to the trunk. use MergeMagician to
rebase the C branch to the tip of the trunk, and begin work on the next version.
|