SCCS - a 50 year retrospective (vs RCS, CVS, SVN, etc)

Here’s a paper taking a 50 year view, by the author of SCCS:
A Retrospective on the Source Code Control System Marc J. Rochkind

How SCCS stores all those versions efficiently and how it figures out what you had done when you edited the file are all in the 1975 paper. I wrote the first version for IBM mainframes in SNOBOL4 and then redesigned the whole system and rewrote it in C for UNIX. The UNIX SCCS is the one that people know about; the SNOBOL4 system disappeared at some point.

On the initial implementation:

I worked away in my favorite language, SNOBOL4, and in a few months came up with SCCS. It wasn’t based on anything; if there were earlier systems, neither I nor anybody I worked with knew anything about them. I just made it all up. I do remember Nowitz once suggesting that maybe all the deltas could be stored in the same file. Good idea!

See also the 1973 paper by Glasser, The evolution of a Source Code Control System (free access)

SCCS, a system for controlling change, has itself undergone considerable change. Nine distinct versions of SCCS have existed. The first five versions were implemented for IBM’s OS, and the last four versions were implemented as a collection of programs that run under the FWB/UNIX time-sharing system.

I’ve worked at places which used SCCS, also more or less in order RCS, CVS, Subversion, Perforce (proprietary! centralised!), and git.

Image from Wikipedia on Version Control

via DragonFly Digest

4 Likes

Rochkind also wrote a nice book on UNIX programming Amazon.com

Oh, SCCS was originally written in SNOBOL?

From a retrocomputing perspective it sounds like we need the 1985 version:

aside from a sentence here and there, this book is all new. The first edition included about 70 system calls; this one includes about 300. And none of the UNIX standards and implementations discussed in this book-POSIX, Solaris, Linux, FreeBSD, and Darwin (Mac OS X)-were even around in 1985

… which turns out to be (edit) unavailable to borrow from the Internet Archive unless you need it for accessibility reasons:

Apparently so!

Another book that lives in my cellar because I lack the shelf space it so richly deserved (from memory). :frowning: Now I have the urge to find and reread it.

I have memories of managing a distributed editing project where binary word processor files were stored in SCCS. Remote editors could check them in and out over dialup UUCP into a Sun box. SCCS managed binary files as diffs of uuencoded streams, which was exactly as efficient as you’d imagine it to be.

You’re probably expecting me to say I have fond memories of this project, but nope. Despite everything it worked, though.

2 Likes

Oh, right. There was an updated version released relatively recently.