Summary
In this chapter we took an overview of the Software Configuration Management basic terminology and principles and how it provides the means to control and manage the evolution of software products. We learned about resource management using the centralized repository that stores all the resources we use to build the final product, and about the workspace that each participant uses to work independently but in sync with the other participants. We've seen that the repository is much more than a simple storage area, providing resource versioning using resource revisions, providing cooperation support using several cooperation models, and history management using labels. These features also allow us to manage the build and the release process. After releasing a new product version we must work in parallel and maintain the release while advancing towards a new release. SCM manages these situations providing parallel development on more than one codeline by creating branched codelines from the trunk or mainline. Later, when we need to integrate changes such as bug fixes between codelines, SCM provides the ability to merge the branched codelines.