RCS and SCCS

Richard Harter g-rh at cca.CCA.COM
Mon Jun 27 10:18:54 AEST 1988


In article <3255 at rpp386.UUCP> jfh at rpp386.UUCP (The Beach Bum) writes:
>In article <8158 at brl-smoke.ARPA> gwyn at brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes:
>>In article <661 at pyuxe.UUCP> mayerar at pyuxe.UUCP (80132-A Mayer) writes:
>>>One good point of RCS is that it stores the most recent version and 
>>>uses deltas to get back to the previous versions.  SCCS stores the
>>>original version and uses deltas to get to the most recent version.

>>No, it doesn't.  I don't know who started this myth, but it's false.
>>SCCS makes one sequential pass to do a "get".

It is my understanding that the original implementation of SCCS was in
the form of the original version plus subsequent deltas and that it was
changed to the present form (interleaved deltas) circa 1980.  If anyone
has precise knowledge on this point, could they please post it or send me
e-mail.

>just because get(1) only makes one pass over a file does not mean
>the SCCS file is stored in most-recent-version order.  since it is
>possible to know which versions the desired version depends on,
>get(1) can follow the insert/delete commands in the s-file to create

	... specific example deleted ...

The answer is, of course, that SCCS uses neither most-recent-version
order nor oldest-version-order.  It does not apply deltas in the sense
of starting with a base version and applying a sequence of updates which
produce a sequence of intermediate versions.  It does apply deltas in the
sense of checking, for each line ever present, the effect of the deltas
on the line.  The difference in performance between the two senses is
enormous; the difference is due to the fact that, in schemes based on
the first sense, each line must be processed once for each delta, whereas
in the second sense each line is only processed once.

It is true, however, that there is, in principle, a signifigant performance
advantage for the RCS scheme versus the SCCS scheme.  SCCS must process
all lines including those not currently active; RCS need only process those
that are currently active.  Furthermore RCS does not need to do any processing
on the line other than copying it out; SCCS has to check the control data
for the line.  On the other hand, RCS pays a penalty if the version being
extracted is not the latest.
-- 

In the fields of Hell where the grass grows high
Are the graves of dreams allowed to die.
	Richard Harter, SMDS  Inc.



More information about the Comp.unix.questions mailing list