Chapter 4. Software Configuration Management

Writing modern software is a complex, time-consuming process, filled with many long, repeated build cycles, bug concerns, and quality assurance issues. Developers need to keep apace of the status of an entire software project in order to ensure the reproducibility of results obtained during build and testing, and also to maintain overall productivity. As a result, software configuration management (SCM) forms a big part of the overall software development process. Choosing the right SCM solution is thus an important, potentially expensive process—especially if you were to need to switch to new tools mid-project.

Linux developers use two common and yet diametrically opposed forms of SCM. The first is based on the more traditional, centralized development model in which developers modify individual source files and pass their changes through a central system in order to preserve consistency and manage who is allowed to work on which sources at a given time. The second is truly distributed, does not rely upon any centralization, and is more suited for large, geographically distributed projects.

In this chapter, you will learn about the different types of SCM available for Linux and will experiment with a variety of implementations. You won't learn all there is to know about the tools, but you'll gain enough knowledge to find out what you don't already know by the end of the chapter. Additionally, you will learn about how integrated tools, ...

Get Professional Linux® Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.