The evolution of configuration management and version control

The activities of configuration management and version control are particularly important for software engineers, since during most of a system lifecycle they have to deal with a growing number of versions of a single component, and to rebuild the complete system in different ways using different components. These tasks are repetitive and trivial, and they require a lot of manual work and accuracy. The paper shows how the problem of automating these activities has been solved in a number of software development environments. It describes the evolution of systems for configuration management and version control from simple stand-alone tools, such as make and SCCS (based on an underlying file system), towards more integrated systems based on a project database.