[net.unix] RCS vs SCCS - a MAJOR misconception

geoff@desint.UUCP (Geoff Kuenning) (01/04/85)

Recently, somebody on the net conducted a poll of opinions on RCS vs. SCCS.
I just got a copy of the results of that poll, and I was simply *amazed* to
find out that literally every respondent mentioned the same INCORRECT flaw
in SCCS as a reason to use RCS.

To wit:  everybody in the (net) universe seems to believe that RCS keeps
backwards differences, while SCCS keeps forward differences.  Since you are
usually working with the current file, forward differences certainly sound
slow.  Can you imagine starting with 1.1, converting that to 1.2 and that
to 1.3, until you got to the current version of 1.25?

There's only one problem with this:  that's not how SCCS works!  In fact, if
you 'cat -v' an SCCS file, you will see something like the following:

    <header section, each line starts with ^A>
    ^AI 1
    <text 1>
    ^AI 2
    <text 2>
    ^AE 2
    ^AD 3
    <text 3>
    ^AE 3
    ^AE 1

This indicates that the original file had "text 1" and "text 3";  the first
revision added "text 2" and the second deleted "text 3".

A moment's thought will show that this structure allows *any* version to be
retrieved in a time proportional only to the total number of lines in the
file.  This structure even handles branches (there is nothing to keep the
two revisions from being different branches;   this is recorded in the
header section).

So where's the "forwardness" of this data structure?

Unfortunately, I do not know what the RCS data structure.  If, as the
misconception implies, it keeps the latest version and a set of
version-to-version differences, it must be *awfully* slow to pick out a really
old version.  Or does the misconception apply to both systems?
-- 

	Geoff Kuenning
	...!ihnp4!trwrb!desint!geoff

ed@mtxinu.UUCP (Ed Gould) (01/07/85)

> To wit:  everybody in the (net) universe seems to believe that RCS keeps
> backwards differences, while SCCS keeps forward differences.

I believe that this all started because (if I remember correctly) there's
a statement in the RCS documentation that it uses backwards diffs for
speed.  The inference I drew from this statement was that SCCS used
forwards diffs, although I knew that it wasn't true.  Perhaps the
RCS folks were "puffing" a bit when promoting their program?

-- 
Ed Gould		    mt Xinu, 739 Allston Way, Berkeley, CA  94710  USA
{ucbvax,decvax}!mtxinu!ed   +1 415 644 0146
			    (I'd rather not be parochial.)