Local Version Control (sccs, rcs)

Steven J Zeil

Last modified: Nov 20, 2013

Localized Version Control

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