Chapter 4. Software Configuration Management
The first half of this chapter describes why keeping track of how your software changes , a process more formally known as software configuration management (SCM), is vital for any project. This chapter covers exactly what is meant by SCM, and how it differs from change management or configuration management (CM). Seven of the most commonly used or promising SCM tools are examined: CVS, Subversion, Arch, Perforce, BitKeeper, ClearCase, and Visual SourceSafe.
The second half of this chapter discusses some of the most common annoyances encountered when using SCM tools and describes some of the ways you can avoid them.
Warning
The acronym SCM has been reverse-engineered over the years to stand for “source configuration management” and “source code management.” The original, most widely used meaning is “software configuration management.” SCM is also known colloquially as “version control” and “revision control.” Since the number of TLAs (three-letter acronyms) is limited, reuse is inevitable; thus SCM also refers to “supply chain management” and “software compliance management,” luckily in slightly different contexts.
Why Do I Need SCM?
The source code of all projects changes over time as the projects grow. Most of the time, the people working on the project add new parts to it and fix the broken ones. Occasionally, large reorganizations of the source code can occur, sometimes as part of cleaning up the code (also known as refactoring).