Local Version Control (sccs, rcs)

Steven J Zeil

Last modified: Oct 20, 2020
Contents:

Abstract

Local version control stores the history of the code base on the same disk storage used for the code under development.

In this lesson we will look at how this approach supports the problems areas of


The earliest version control systems in wide use were sccs and the open source rcs.


Basic rcs Operations

1 History


Revision Numbers

 


Naming Revisions


Implementation

rcs is essentially a systematic way of creating and organizing patches.

2 Exploration


Exploring Alternatives

 
Suppose that we have worked through a few revisions and then get an idea that might not pay off.

We can start a branch to explore our idea while others continue work on the main trunk.

ci -r1.3.1 _filename_

Checks in our current version of filename as a new branch of development, numbered 1.3.1.1


Working in a Branch

Subsequent check-ins of both the main trunk (1.3) and of our branch version will maintain separate revision numbers:

 


Merging a Branch

 


Multiple Merges

After a merge

 


Combating Drift

Over time, a long-running branch can get so far out of sync with changes being made to the trunk that the final merge becomes difficult or even impossible.

3 Collaboration

rcs supports collaboration by locking files


Locks

4 Strengths and Weaknesses


History


Exploration Issues


Collaboration Issues