WHAT'S IN THIS CHAPTER?
Creating source trees
Configuring source control
Adding a project to source control
Checking out a project
Sharing, checking in, comparing, and merging project files
Software development has always been characterized as a rather solitary vocation. The stereotype of a single programmer working into the wee hours of the night, isolated in a basement or attic room, is now mostly the purview of fiction writers. Most modern development is done in teams — even when those teams are scattered across the globe and connected only by the Internet. Members of a team need ready access to the assets of projects they are working on. They need to collaborate on changes and distribute their work to other team members.
Software projects themselves may also need to share resources. A suite of applications developed for a single corporation might need to include a common set of graphics, or share a set of preprocessor definitions. It's impractical to put all of the applications into a single project, and (as you saw in Chapter 5) source file references outside the project folder can be problematic. Projects need a way to share common assets rationally.
Closely related to the subject of sharing source files is the concept of source control management (SCM), or just source control. Source control systems store and track the changes made to source files over time. It is usually the basis of a collaboration system among multiple developers, acting as a mediator ...