|
Questions About Branching and Automated Merging
While the vast majority of people that we've shown the MergeMagician automated merging concept to have been enthusiastic
about the capabilities, a few have asked some probing questions that deserve discussion. In this page, we'll address some of
the common questions related to automated merging.
Question #1 : Are branches useful on agile development projects?
Yes. In particular, the branch-by-task or branch-by-feature pattern can be invaluable on agile development projects.
By isolating each feature in their own separate branches, the team can work on the implementation of each feature
independently without worrying about creating destabilizing changes on the mainline.
As the priority of features change
based on customer demand, resources can be moved between features. Features are promoted to the mainline only when they
are fully completed, including testing and documentation. This approach gives the company managers complete flexibility
in deciding when to ship the next version of the product. The release cycle is not held hostage by incomplete features.
This approach is very much aligned with the principles of agile development methodologies.
Question #2 : How do you automate the merge when merge conflicts occur?
This is a valid concern, and we believe any approach to automated merging must address this potential problem. Even though automated
merging will greatly reduce merge conflicts, we must still have a solution for the rare cases when there is a merge conflict, otherwise the
system is untrustworthy.
For this reason, we have designed MergeMagician from the ground up to address merge conflicts. Using an elegantly integrated approach, the
MergeMagician workflow engine allows suspending and resuming the merge while conflicts are resolved. The workflow process works in conjunction
with the web-based collaborative merging component. Because this component is web-based, anyone on the team, including developers, managers,
quality assurance personnel, or technical writers can participate in the resolution process. MergeMagician archives all resolutions, providing a
complete audit trail of what was done.
Question #3 : Doesn't branching defer a huge merge task to the end of the project?
This observation stems from the fact that up until now there haven't been good tools to automate and simplify the merging process. When
merging is a tedious, time-consuming process, developers will naturally avoid in favor of "real" work.
With an automated, server-based merging tool, there is simply no reason to fear branching and merging.
|