Parallel Software Development
Parallel development occurs whenever a software development project requires separate development efforts on related code bases. For example, when a software product is shipped to customers, a product development team may begin working on a new major feature release of the product, while a product maintenance team may work on defect corrections and customer patch releases of the shipped product. Both teams begin work from the same code base, but the code necessarily diverges. Frequently the code bases used in parallel development efforts must be merged at some future date, for example, to ensure that the defect corrections provided by the product maintenance team are integrated into the major release that the product development team is working on.
AccuRev provides a stream-based architecture that naturally captures and controls the relationships between the various code bases used in parallel development efforts. An AccuRev stream inherits code from a parent stream without using expensive file copy operations. Code changes can also be promoted up and across the stream hierarchy so that code can be shared in a controlled fashion. Streams provide an ideal architecture for managing multiple, geographically distributed parallel development projects.
AccuRev provides the following features to enable parallel development:
- Intelligent, active code streams instead of static branches. Streams enable efficient codeline creation and management, and support fast and easy code merging.
- A keep and promote model that enables team members to safely store their work in the AccuRev repository, test it locally, and then share it with other teams once the code is stable.
- The AccuRev Change Palette, a visual tool to assist in promoting code changes across the stream hierarchy.
- Advanced merge analysis and tracking support to enable easy identification and resolution of incompatible code changes across streams.