6.1. Some Source Control History

One of the earliest source control systems to become widely used was the RCS (Revision Control System) platform that shipped as part of many (if not most) UNIX systems. Because such systems were meant to be used by a number of people at the same time and software development became a common task, RCS played a vital role in making development easier. RCS had a simple command line interface, and used the UNIX file system as its storage mechanism. RCS worked by using pessimistic locking. If a developer needed to work on a file, that developer would "check out" the file. RCS would mark that file as "locked," and not allow anyone else to check it out until the first user checked the file back in, thus releasing the lock. This kind of locking was easy to understand and made it very difficult for two users to make conflicting changes to the same file or set of files. Because developers usually checked out all the files they needed to make a change to at once, it prevented any other users from changing those same files, protecting the integrity of each developer's changes. RCS stored all the versions of each file in a single node in the file system, using a diff format to represent the incremental changes to each unique version. Those diffs allowed any previous version to be recreated by assembling the appropriate series of diffs to make the right version of the source file.

The biggest advantage of RCS was its simplicity. Pessimistic locking is easy to ...

Get Code Leader: Using People, Tools, and Processes to Build Successful Software 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.