RCS vs SCCS - a MAJOR misconception
Geoff Kuenning
geoff at desint.UUCP
Fri Jan 4 12:50:38 AEST 1985
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
More information about the Comp.unix
mailing list