[comp.unix.questions] sccs vs. rcs

charles@dragon.UUCP (Charles Wolff) (12/09/87)

I'm involved in a project which is going to have a fairly large source
code base, and we're currently in the process of deciding whether to
use sccs or rcs for source code control.  Would like to hear from anyone
who:

	1) is familiar with both SCCS and RCS.    _AND_

	2) can give me examples of things that they are doing with one
	   that couldn't be done with the other.

Thanks in advance...
-- 
I Pit My Wits Against Those Silicon Chips..  |  Charles Wolff
But I've Still Got the Animal Inside of Me!  |  Motorola Microsystems
       -Thompson Twins                       |  Tempe, AZ   (602) 438-3432

poetry@gpu.utcs.toronto.edu (David Goodman) (12/10/87)

In article <743@dragon.UUCP> charles@dragon.UUCP (Charles Wolff, x3432) writes:
>I'm involved in a project which is going to have a fairly large source
>code base, and we're currently in the process of deciding whether to
>use sccs or rcs for source code control.  Would like to hear from anyone
>who:
>
>	1) is familiar with both SCCS and RCS.    _AND_
>
>	2) can give me examples of things that they are doing with one
>	   that couldn't be done with the other.
>
>Thanks in advance...


I would love to hear about this, too.  Thanks.

robf2@pyuxf.UUCP (robert fair) (12/16/87)

In article <1987Dec9.235431.11368@gpu.utcs.toronto.edu>, poetry@utgpu.UUCP writes:
> 
> In article <743@dragon.UUCP> charles@dragon.UUCP (Charles Wolff, x3432) writes:
> >I'm involved in a project which is going to have a fairly large source
> >code base, and we're currently in the process of deciding whether to
> >use sccs or rcs for source code control.  Would like to hear from anyone
> >who:
> >
> >	1) is familiar with both SCCS and RCS.    _AND_
> >
> >	2) can give me examples of things that they are doing with one
> >	   that couldn't be done with the other.
> >
> >Thanks in advance...
> 
> 
> I would love to hear about this, too.  Thanks.

Me, Three. Thanks


Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler

skh@hpclskh.HP.COM (01/13/88)

/ hpclskh:comp.unix.questions / robf2@pyuxf.UUCP (robert fair) /  6:43 am  Dec 16, 1987 /
In article <1987Dec9.235431.11368@gpu.utcs.toronto.edu>, poetry@utgpu.UUCP writes:
> 
> In article <743@dragon.UUCP> charles@dragon.UUCP (Charles Wolff, x3432) writes:
> >I'm involved in a project which is going to have a fairly large source
> >code base, and we're currently in the process of deciding whether to
> >use sccs or rcs for source code control.  Would like to hear from anyone
> >who:
> >
> >	1) is familiar with both SCCS and RCS.    _AND_
> >
> >	2) can give me examples of things that they are doing with one
> >	   that couldn't be done with the other.
> >
> >Thanks in advance...
> 
> 
> I would love to hear about this, too.  Thanks.

Me, Three. Thanks


Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
Poster Filler
----------
My only comment to you would be this:  the versions of SCCS I have seen
store the original source file and differences from that file.  RCS versions
tend to store the latest source file and differences from previous versions.
This means that SCCS takes longer to give the the latest version of a file;
RCS takes longer to get back to a previous version.  When I am in program
development, I find it much easier to have fast access to the most recent 
version of a file.  I find that I need older versions much less often, and I
am willing to wait.  Naturally, if you think you will be working on older
versions more often (such as after a product release), SCCS may be a better
choice.

Instant disclaimer: Not all versions of SCCS and RCS have this property.
Disclaimer #2:  No other comments about ease of use.
				skh

gwyn@brl-smoke.ARPA (Doug Gwyn ) (01/14/88)

In article <720003@hpclskh.HP.COM> skh@hpclskh.HP.COM writes:
>My only comment to you would be this:  the versions of SCCS I have seen
>store the original source file and differences from that file.  RCS versions
>tend to store the latest source file and differences from previous versions.

SCCS archives are not the way you describe.

>This means that SCCS takes longer to give the the latest version of a file;
>RCS takes longer to get back to a previous version.

Since SCCS "get" does not in fact have to apply each delta separately, but
rather applies them all in one sequential scan, it is fairly fast.

It takes SCCS "get" about a second on a VAX-11/780 to retrieve the latest
version of a 1000-line program that has undergone from 4 to 10 revisions.

ntm1458@dsacg3.UUCP (John Darby) (01/15/88)

in article <720003@hpclskh.HP.COM>, skh@hpclskh.HP.COM says:
> 
>> >who:
>> >
>> >	1) is familiar with both SCCS and RCS.    _AND_
>> >
>> >	2) can give me examples of things that they are doing with one
>> >	   that couldn't be done with the other.

We have both SCCS and RCS here at DLA and we are trying to decide
which to use.
1. SCCS is supported by the vendor as part of the contract.
2. RCS is public domain.  Support from netland seems very reliable.
   I think RCS is easier to use.
   For the people writing applications and supporting them RCS is
   similar to the software we use to support IBM mainframe applications.
3. Basically right now we use both and leave it up to the individual or
   group to decide.
-- 
John T. Darby, (DLA Systems Automation Center, DSAC-TMM, P.O. Box 1605
Columbus, OH, ntm1458, 614 238-9174)
UUCP: {...cbosgd!osu-cis}!dsacg1!jdarby
Any opinions expressed are my own, not those of my employer.

wheels@mks.UUCP (Gerry Wheeler) (01/19/88)

In article <580@dsacg3.UUCP>, ntm1458@dsacg3.UUCP (John Darby) writes:
> We have both SCCS and RCS here at DLA and we are trying to decide
> which to use.
> 1. SCCS is supported by the vendor as part of the contract.
> 2. RCS is public domain.  Support from netland seems very reliable.
>    I think RCS is easier to use.

Is it public domain? I don't think so, but I don't have any hard
evidence one way or the other. 

Another point in RCS's favour (for those who have to use more than one
operating system) is that it is now available for MS-DOS too.  The RCS
files generated by the two versions are identical, so they can be ported
directly from one system to the other. 

-- 
     Gerry Wheeler                           Phone: (519)884-2251
Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
   35 King St. North                             BIX: join mks
Waterloo, Ontario  N2J 2W9                  CompuServe: 73260,1043

cramer@optilink.UUCP (Clayton Cramer) (01/22/88)

> In article <580@dsacg3.UUCP>, ntm1458@dsacg3.UUCP (John Darby) writes:
> > We have both SCCS and RCS here at DLA and we are trying to decide
> > which to use.
> > 1. SCCS is supported by the vendor as part of the contract.
> > 2. RCS is public domain.  Support from netland seems very reliable.
> >    I think RCS is easier to use.
> 
> Is it public domain? I don't think so, but I don't have any hard
> evidence one way or the other. 

No, it's not public domain -- but you can ask Mr. Tichy for permission
to get it from someone who does it have it, and it's only a minor 
nuisance to do so, and there's no charge.

> Another point in RCS's favour (for those who have to use more than one
> operating system) is that it is now available for MS-DOS too.  The RCS
> files generated by the two versions are identical, so they can be ported
> directly from one system to the other. 
> 
>      Gerry Wheeler                           Phone: (519)884-2251
> Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels

Interesting!  Does MKS offer RCS as a product for MS-DOS?  If so, how
much?  This might be of general interest to PC users.

Clayton E. Cramer

ericb@athertn.Atherton.COM (Eric Black) (01/23/88)

In article <377@mks.UUCP> wheels@mks.UUCP (Gerry Wheeler) writes:
>In article <580@dsacg3.UUCP>, ntm1458@dsacg3.UUCP (John Darby) writes:
>> [...]
>> 2. RCS is public domain.
>
>Is it public domain? I don't think so, but I don't have any hard
>evidence one way or the other. 

No, it is not public domain.  The author retains the copyright to
the code, but in the past, at least, has been quite liberal in giving
permission for using and/or distributing the code for no direct profit
(in other words, you can get permission to include it in a commercial
product as long as the product costs the same with it as without it).
Just ask him beforehand.

I quote the copyright notice contained in the source:

 * Copyright (C) 1982 by Walter F. Tichy
 *                       Purdue University
 *                       Computer Science Department
 *                       West Lafayette, IN 47907
 *
 * All rights reserved. No part of this software may be sold or distributed
 * in any form or by any means without the prior written permission of the
 * author.

Of course, Tichy is now at University of Karlsruhe, West Germany, at net
address <tichy%germany.csnet>.  I further quote from a letter he sent
me in November, 1987:

    If you received RCS via Berkeley Unix, then no further permission
    for distribution is required from my side.  I've also been informed
    that AT&T no longer claims ownership of diff and diff3, so you need
    not replace these components.

I interpret this to mean that if you had legitimate access to 4BSD sources,
then you have legitimate access to RCS source; this is not the only way
to legitimately get it.  I have not personally verified that AT&T has
abandoned claims to diff and diff3 source; unless this is so, then
legitimate access to sources for RCS, which includes files directly
derived from the diff and diff3 code for UNIX, requires the UNIX license.
Even if AT&T has not given away diff, then if those files are not present
in your collection of RCS sources, then you should be OK.  There are many
various versions of "diff" available; some hacking is required to make
any suitable for use in RCS, but it is apparently not necessary.

More from that same letter:

    However, there is a newer release of RCS, release 4.  This release
    is a much improved version, and upward compatibel [sic] with
    release 3...In addition, I now have a version of MAKE that is
    integrated with RCS.
    ...
    I can offer release 4 of RCS together with the new MAKE at a
    one-time fee of $5000 for a world-wide non-exclusive license.

I don't know any more (yet) about it.  We are looking into version 4,
and I'll post something when I do have more to say about it.

-- 
Eric Black	"Garbage in, Gospel out"
   UUCP:	{sun!sunncal,hpda}!athertn!ericb
   Domainist:	ericb@Atherton.COM

guy@gorodish.UUCP (01/24/88)

> There are many various versions of "diff" available; some hacking is
> required to make any suitable for use in RCS, but it is apparently not
> necessary.

The 4.3BSD version of "diff" (which is derived from AT&T code, and thus would
require an AT&T license unless they truly *have* abandoned any claim to
ownership) has had all the changes made to "diff" for RCS folded into it.  This
version is provided with a number of UNIX systems; for instance, SunOS provides
it with release 3.2 and all subsequent releases.

The main such change was the addition of the "-n" flag.  Check your man page;
if a "-n" flag is listed and described in terms such as "produce(s) a script
similar to that of '-e', but in the opposite order and with a count of changed
lines on each insert or delete command", you probably have the 4.3BSD version.

> I don't know any more (yet) about it.  We are looking into version 4,
> and I'll post something when I do have more to say about it.

Version 4 incorporates:

	1) the changes made by Jay Lepreau, which are in the version that came
	   with 4.3BSD, to make "rcsdiff" support all the options that the
	   4.3BSD "diff" does (including options such as the new "-w" and "-i"
	   options);

	2) changes to make it pass "lint" with many fewer complaints, so it can
	   work on e.g. systems with 16-bit "int"s and 32-bit pointers;

	3) changes to make it work on S3/S5 systems (although you'll have to
	   dig up a modified "diff" for many of those systems);

	4) changes to make it work on systems that disallow dereferencing null
	   pointers;

	5) a number of bug fixes.

I don't know what else it has.  I don't know what the arrangements are for
getting Version 4, but if you can get it, you probably should do so.
	Guy Harris
	{ihnp4, decvax, seismo, decwrl, ...}!sun!guy
	guy@sun.com

wheels@mks.UUCP (Gerry Wheeler) (01/26/88)

In article <1867@optilink.UUCP>, cramer@optilink.UUCP (Clayton Cramer) writes:
} > Another point in RCS's favour (for those who have to use more than one
} > operating system) is that it is now available for MS-DOS too.  The RCS
} > files generated by the two versions are identical, so they can be ported
} > directly from one system to the other. 
} > 
} >      Gerry Wheeler                           Phone: (519)884-2251
} > Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
} 
} Interesting!  Does MKS offer RCS as a product for MS-DOS?  If so, how
} much?  This might be of general interest to PC users.
} 
} Clayton E. Cramer


Yes, we have just completed a port of RCS to MS-DOS. It is available
for $189 (US dollars). Call or write for more details and info.
-- 
     Gerry Wheeler                           Phone: (519)884-2251
Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
   35 King St. North                             BIX: join mks
Waterloo, Ontario  N2J 2W9                  CompuServe: 73260,1043

wheels@mks.UUCP (Gerry Wheeler) (01/26/88)

In article <163@teak.athertn.Atherton.COM>, ericb@athertn.Atherton.COM (Eric Black) writes:
} Of course, Tichy is now at University of Karlsruhe, West Germany, at net
} address <tichy%germany.csnet>.  I further quote from a letter he sent
} me in November, 1987:
} 
}     However, there is a newer release of RCS, release 4.  This release
}     is a much improved version, and upward compatibel [sic] with
}     release 3...In addition, I now have a version of MAKE that is
}     integrated with RCS.
}     ...
}     I can offer release 4 of RCS together with the new MAKE at a
}     one-time fee of $5000 for a world-wide non-exclusive license.
} -- 
} Eric Black	"Garbage in, Gospel out"
}    UUCP:	{sun!sunncal,hpda}!athertn!ericb
}    Domainist:	ericb@Atherton.COM

The port that MKS did for MS-DOS is from these newer version 4 sources,
which we licensed directly from Mr. Tichy. The only major changes we
had to make were in the areas of file name conventions (DOS doesn't
allow names like "foo.c,v") and file locking. Other than that, it is
all pretty well generic C code.
-- 
     Gerry Wheeler                           Phone: (519)884-2251
Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
   35 King St. North                             BIX: join mks
Waterloo, Ontario  N2J 2W9                  CompuServe: 73260,1043

woods@tslanpar.UUCP (Greg A. Woods ) (01/26/88)

I have used both SCCS, and an MS-DOS (yeah, I know...) version called VCS
(Polytron).  I have had little exposure to RCS.

From my experience with SCCS, and from what I know of RCS, VCS is more of an
RCS look-alike, though the authors (marketeers) say they took the best
features of all.

The one thing that is missing from SCCS that was quite simple with VCS is
meta-version naming scheme.  (Product version names, as opposed to file
revision ID's, where a version incorporates many files of different
revisions.)  I would imagine that RCS has this.

One thing that is MUCH more difficult with SCCS than it was with VCS is to
hide all of the special files in another directory.  What makes it hard with
SCCS is that none of the commands support an option or environment variable
to accomplish this task, and none of the make rules properly support such a
feature either.  (One could write a new set of make rules, and use the little
documented "include" feature).

If I have missed something with the use of SCCS, or if another simple tool
exists to facilitate version naming, I would like to hear about it.
-- 
						Greg Woods.

UUCP: utgpu!woods, utgpu!{ontmoh, tmsoft!tslanpar}!woods, woods@tslanpar
VOICE: (416) 242-7572		LOCATION: Toronto, Ontario, Canada

runyan@hpirs.HP.COM (Mark Runyan) (01/27/88)

>/ gwyn@brl-smoke.ARPA (Doug Gwyn ) /  3:08 am  Jan 14, 1988 /
>In article <720003@hpclskh.HP.COM> skh@hpclskh.HP.COM writes:
>>My only comment to you would be this:  the versions of SCCS I have seen
>>store the original source file and differences from that file.  RCS versions
>>tend to store the latest source file and differences from previous versions.
>
>SCCS archives are not the way you describe.

Perhaps what he said was a little too general, but that is a quick
explanation.  A better was is to say that SCCS stores the original
and the interleaves the deltas when a check in is done.  This means
that the "get" must always scan the entire file to retrieve a document
no matter how far back you go.

>>This means that SCCS takes longer to give the the latest version of a file;
>>RCS takes longer to get back to a previous version.
>
>Since SCCS "get" does not in fact have to apply each delta separately, but
>rather applies them all in one sequential scan, it is fairly fast.
>
>It takes SCCS "get" about a second on a VAX-11/780 to retrieve the latest
>version of a 1000-line program that has undergone from 4 to 10 revisions.

The retrieval of a file in SCCS vs the speed of retrieval in RCS has been
much debated, with different values always stated.  Perhaps someone would
care to derive a table of values on different machines? :-)

Mark Runyan  ( RCS Warrior )

mark@ria-emh2.army.mil (Mark D. McKamey IM SA) (06/06/89)

Hello,
 
     I am currently looking into implementing a revision control program
for numerous source files here locally.  I am somewhat familiar with AT&T's
SCCS program, but have heard of a program called RCS (Revision Control System)
by Purdue University.  What I am looking for is a detailed comparision
between SCCS and RCS.  Any information concerning such comparison would be
greatly appreciated.  Thank You,

Mark D. McKamey
mark@RIA-EMH2.ARMY.MIL

yuf@mentor.cc.purdue.edu (Kyle Grieser) (06/08/89)

In article <19885@adm.BRL.MIL> mark@ria-emh2.army.mil (Mark D. McKamey IM SA) writes:
>by Purdue University.  What I am looking for is a detailed comparision
>between SCCS and RCS.  Any information concerning such comparison would be
>greatly appreciated.  Thank You,

We (here at PUCC) use RCS extensively for source management.  Both SCCS and
RCS do approximately the same thing, but in reverse.  Let me try to explain.
When you make changes in these two systems, they keep diffs for all of the
different revisions.  The main difference is that SCCS keeps diffs that apply
to the original version and RCS keeps diffs that apply to the current version.
Thus, RCS is much faster when retrieving the latest revision.  In order for
SCCS to get the latest version, it must apply all of its diffs to the original.
The opposite it true for retrieving the original version.  RCS will take
longer than SCCS.

Hope this helps (and that it is generally correct :-),

-----
Kyle Grieser, Purdue University Computing Center
yuf@mentor.cc.purdue.edu, mentor.cc.purdue.edu!yuf

erik@mpx2.mpx.com (Erik Murrey) (06/08/89)

In article <19885@adm.BRL.MIL> mark@ria-emh2.army.mil (Mark D. McKamey IM SA) writes:
>by Purdue University.  What I am looking for is a detailed comparision
>between SCCS and RCS.  Any information concerning such comparison would be
>greatly appreciated.  Thank You,

One of the things I like most about RCS is that it can collapse
keywords when checking in revisions.  This way, if I forget to check
out a file for locking, then I edit it, I can still check it in
without losing the keywords.

For example, in SCCS, a "%Z%" gets expanded into "@(#)" when checked
out (for compiling), but it cannot collapse that back to "%Z%" if I
check that version in.  In RCS, a "$Id: $" gets expanded to "$Id:
whatever $", which can be collapsed back to "$Id: $" when checked in.

This also makes distribution and updates much easier.  This was very
important in making our decision to use RCS.
 
.... Erik
-- 
Erik Murrey                            /|   //  /~~~~/  |  /
MPX Data Systems, Inc.                / | / /  /____/   |/
erik@mpx.com                         /  /  /  /        /|  Data Systems, Inc. 
{vu-vlsi, bpa, cbmvax}!mpx1!erik    /     /  /       /  |====================

syd@dsinc.DSI.COM (Syd Weinstein) (06/08/89)

In article <2934@mentor.cc.purdue.edu> yuf@mentor.cc.purdue.edu (Kyle Grieser) writes:
:In article <19885@adm.BRL.MIL> mark@ria-emh2.army.mil (Mark D. McKamey IM SA) writes:
:>by Purdue University.  What I am looking for is a detailed comparision
:>between SCCS and RCS.  Any information concerning such comparison would be
:>greatly appreciated.  Thank You,
:
:We (here at PUCC) use RCS extensively for source management.  Both SCCS and
:RCS do approximately the same thing, but in reverse.
I suggest you see my article in the most recent issue of the C Users
Journal.  I did a brief introduction to Source Code Librarians
and in doing so contrasted SCCS and RCS showing their main differences
and the many simularities.
-- 
=====================================================================
Sydney S. Weinstein, CDP, CCP                   Elm Coordinator
Datacomp Systems, Inc.				Voice: (215) 947-9900
syd@DSI.COM or {bpa,vu-vlsi}!dsinc!syd	        FAX:   (215) 938-0235

guy@auspex.auspex.com (Guy Harris) (06/09/89)

>When you make changes in these two systems, they keep diffs for all of the
>different revisions.  The main difference is that SCCS keeps diffs that apply
>to the original version

(Another one for the "frequently asked questions" list?)  This isn't
true; SCCS basically keeps all the versions in one big list, with "begin
delta thus-and-such" and "end delta thus-and-such" entries.  Thus, the
time to retrieve a given delta is pretty much independent of the
distance of the delta you're retrieving from the original version. 

RCS *does* apply the deltas to the latest revision, so the time pretty much
increases as you move further away from that version.  RCS may be a bit
faster at retrieving the later version because it doesn't have to pay
any attention to any deltas, while SCCS has to pay attention to the
delta information on all retrievals.

gwyn@smoke.BRL.MIL (Doug Gwyn) (06/09/89)

In article <2934@mentor.cc.purdue.edu> yuf@mentor.cc.purdue.edu (Kyle Grieser) writes:
>When you make changes in these two systems, they keep diffs for all of the
>different revisions.  The main difference is that SCCS keeps diffs that apply
>to the original version and RCS keeps diffs that apply to the current version.

This appears to correctly describe how RCS operates, but it is NOT how
SCCS operates.  SCCS maintains a single interleaved-delta archive that
can have a designated delta extracted in one sequential pass.

dhesi@bsu-cs.bsu.edu (Rahul Dhesi) (06/09/89)

In article <10006@mpx2.mpx.com> erik@mpx2.mpx.com (Erik Murrey) writes:
>For example, in SCCS, a "%Z%" gets expanded into "@(#)" when checked
>out (for compiling), but it cannot collapse that back to "%Z%" if I
>check that version in.

This is a design bug in SCCS.  There is a way around it, provided you
use a standard set of sccs keywords in all files.  For example:

     static char sccsid[] = "::[ %lots% %of% %sccs% %keywords% ]::";

Then when you lose keywords in a file, filter it through my "updid" script:

   #! /bin/sh
   # usage:  updid file ...
   # Restores lost SCCS keywords between ::[ and ]:: in source files
   # Copyright 1989 Rahul Dhesi, All rights reserved.  Use and
   # distribution permitted in accordance with the GNU license
   TMP=T$$
   WORDS='::[ %lots% %of% %sccs% %keywords% ]::'
   for f
   do
      sed < $f > $TMP -e "s/::\[.*\]::/$WORDS/" && mv $TMP $f
   done
-- 
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP:    ...!{iuvax,pur-ee}!bsu-cs!dhesi
Career change search is on -- ask me for my resume

dmg@ist.CO.UK (Dave McGlade) (06/13/89)

Both RCS and SCCS have two major shortcomings, in my humble opinion (what? !!)
Firstly, both require write access to the file containing old versions, 
(perhaps under some other user id).
This means that, potentially, I can corrupt old versions. 
From a project point of view, this is *BAD* news. Once
filed away as 'write only' an old version should not be corruptable without
forcing your resident guru to get out his code to access the disk as a
raw device :->

[In fact I used to accidentally corrupt s. files all the time when I tried
to save documents produced by CASE tools and have had to put some stuff 
on the front of SCCS to stop me checking in things that might corrupt 
the "s." files. ]

The second problem is like the first: the failure modes of SCCS/RCS should
ensure nothing wrecks my carefully built up history. I had a good case of
this recently when the disk filled up, screwed up the s. file and then carried
on to delete my original.

Dave McGlade
IST

leo@philmds.UUCP (Leo de Wit) (06/15/89)

In article <1874@istop.ist.CO.UK> dmg@ist.CO.UK (Dave McGlade) writes:
|Both RCS and SCCS have two major shortcomings, in my humble opinion (what? !!)
|Firstly, both require write access to the file containing old versions, 
|(perhaps under some other user id).

No, they need write access (by the effective user) to the directory
containing the version file. The version file only has (some of) the
read mode bits on.

|This means that, potentially, I can corrupt old versions. 
|From a project point of view, this is *BAD* news.

Just install the sccs frontend as setuid sccs (this is the default e.g.
on Ultrix). Your system manager can chown sccs an SCCS directory for
you (question: shouldn't this be an sccs command instead?); now you can
get to the files only through the sccs frontend. You can go even further
and create an access list for each RCS/SCCS file.

|                                                  Once
|filed away as 'write only' an old version should not be corruptable without
|forcing your resident guru to get out his code to access the disk as a
|raw device :->

If you file away old versions as 'write only', you shouldn't worry
about them getting corrupted: you can't read them anyway 8-).

    Leo.

runyan@hpirs.HP.COM (Mark Runyan) (06/16/89)

>/ mark@ria-emh2.army.mil (Mark D. McKamey IM SA) /  7:36 am  Jun  6, 1989 /
>     I am currently looking into implementing a revision control program
>for numerous source files here locally.  I am somewhat familiar with AT&T's
>SCCS program, but have heard of a program called RCS (Revision Control System)
>by Purdue University.  ...

RCS and SCCS are similiar.  A quick comparason...

 
  SCCS                              RCS                    Meaning

get  s.file.c                   co file.c                 check out file 
get -e s.file.c                 co -l file.c              check out for 
							   modification
delta  s.file.c                 ci file.c                 check in changes
prs s.file.c                    rlog file.c               display history
admin -n -ifile.c  s.file.c     ci file.c                 put file under 
							   control
admin -auser1,user2 s.file.c    rcs -auser1,user2 file.c  create a restricted
							   access list

SCCS advanatages over RCS
  - checks to determine if the contents of the s. file has been corrupted
    and reports an error.
  - can easily inform the user which revision added or deleted a given line.
  - faster check out times if you are dealing with revisions other than
    the "top of the trunk"

RCS advantages
  - Has the ability to create a "relation" between families of files with
    the symbolic names.
  - simplier interface for doing common work
  - faster check in and check out times if you are dealing with revisions
    on the "top of the trunk"

In most all other ways, RCS and SCCS have the same capabilities.  RCS keeps
all the locking information in the ",v" file while SCCS uses a "p." file to
record locks, but the same types of locks are done.  Both RCS and SCCS
can deal with branches and have keywords that can be embedded in a file
to be automatically expanded at check out time to explain which revision
is being worked with (however, in SCCS the "get -e" does not expand the
keywords when the file is checked out for modification).  

To ask which is better is like asking which editor is better: vi or emacs?
The real answer is, you have to decide for yourself.

Oh, and to indicate my bias so you know where I might have fudged :-)
   I'm an RCS (and emacs) user myself.

Mark Runyan

jeffrey@algor2.UUCP (Jeffrey Kegler) (06/24/89)

In article <494@silence.princeton.nj.us> jay@silence.princeton.nj.us (Jay Plett) writes:
>
>Several people have discussed the relative merits of RCS and SCCS.
>Did I just miss it, or has nobody mentioned the greatest advantage
>that RCS has over SCCS?  RCS is freely available as source code.
>

It is certainly an important point, though not an overwhelming advantage
for all users.  SCCS is more common, so if the stuff is to be ported and
the people on the target are to be able to take advantage of the history,
SCCS is better.  RCS could be ported of course, but to ask that under some
circumstances is not reasonable (or even where reasonable, not possible :-
)) The fact that SCCS is AT&T supported makes it a better choice for some
clients.

Particularly, every programmer should know the basics of SCCS, even if they
do not use it day to day.  This is for the same reason that they should
know ed, even though they always use vi or emacs, and that they should know
sh, even though they use ksh or csh.

IMHO, RCS is technically smoother, and the advantage of having source is
overwhelming where I personally am concerned and porting to unknown
environments is not a worry.  I wind up using SCCS more, though.
-- 

Jeffrey Kegler, President, Algorists,
jeffrey@algor2.UU.NET or uunet!algor2!jeffrey
1762 Wainwright DR, Reston VA 22090

gst@wjh12.harvard.edu (Gary S. Trujillo) (06/25/89)

>/ mark@ria-emh2.army.mil (Mark D. McKamey IM SA) /  7:36 am  Jun  6, 1989 /
>     I am currently looking into implementing a revision control program
>for numerous source files here locally.  I am somewhat familiar with AT&T's
>SCCS program, but have heard of a program called RCS (Revision Control System)
>by Purdue University.  ...

[discussion begun in comp.unix.questions - being cross-posted to
comp.unix.wizards for purposes of informed discussion]

I just joined this discussion, so I don't know if it's already been mentioned,
but I wanted to point out that Eric Allman has written an article comparing the
two systems in the March '89 issue (vol. 7, no. 3) of _UNIX_Review_ magazine
in the "C Advisor" column (p. 72 ff).  In the concluding section of the article
[quoted from without permission], Eric says:

	One more important question must be asked:  Which one should
	you use?  As always, the answer is: it depends.  SCCS is older
	and generally more mature.  In my opinion, many of the funda-
	mental design elements of SCCS are superior to those of RCS.
	For example, I have seen RCS trash master files when the disk
	ran out of space at inopportune times, and RCS is much more
	cavalier about writing the master file than is SCCS.
	Specifically, SCCS does not rewrite the master file when you
	check out a file, changing it only when you check a new
	version in.

	All the same, the user interface of RCS is on the whole much
	nicer.  RCS allows for the naming of versions, whcih is very
	useful when you have several files in one directory that make
	up a single system.

	RCS also assigns a *state* to each version, such as
	"Experimental" or "Release".  This simplifies release
	management somewhat.  It has been my experience, however, that
	in very large systems (several hundred files in several
	directories) more sophisticated version and release management
	is necessary.  In such cases, the additional maturity of SCCS
	wins the day.

	My final conclusion is that, for medium-sized systems, RCS is
	still the easiest way to go.  For large systems, where release
	mechanisms will likely have to be built anyway, SCCS is
	probably better.  For small systems, it is really a toss-up.

	Of course, if you don't have SCCS--which, like everythying
	else from AT&T, is licensed and fairly expensive--the decision
	is an easy one.

[The rest of Eric's article is really a brief tutorial on the use
of each, and doesn't have much to say about which might be better for
a specific purpose.]

	(Eric Allman is a senior programmer at the International
	Computer Science Institute, a research organization in
	Berkeley, California, where he is learning about neural
	networks and new technologies.  He previously worked at
	Britton Lee Inc. and on the INGRES project at the University
	of California at Berkeley.  He is the author of sendmail and
	of the -me macros, among other contributions to BCS UNIX.)

	_UNIX_Review_ (with which I have no connection, except as
	a satisfied reader) is published monthly by Miller Freeman
	Publications Co.  [ISSN-0742-3136]
	
	Their snailing address is:

		UNIX Review
		500 Howard Street
		San Francisco, CA 94105

	Email may be sent to:

		{uunet,mtxinu,basis,attmail}!beast!editor


Another good source on the subject is the article by Walter F. Tichy, the
author of RCS, published in the Proceedings of the IEEE 6th International
Conference on Software Engineering (Tokyo, 1982).  The article seems to
make a good case for the superior efficiency and performance of RCS,
which seems due largely to the fact that most checkouts are of most-
recent versions, which RCS can do quickly since it uses the scheme of
storing the most recent version of files (incorporating embedded
control information), and applies reverse deltas if older versions are
requested.	 [0270-5257/82/0000/0058$00.75 (c) 1982 IEEE]


I post this information hoping to promote some further discussion on the
subject.  I plan to undertake the use of one of the two systems on a
major project within the next month, and would like to hear stories and
opinions by users of one or both.

-- 
	Gary Trujillo
	(harvard!wjh12!gst)

gwyn@smoke.BRL.MIL (Doug Gwyn) (06/25/89)

In article <356@wjh12.harvard.edu> gst@wjh12.UUCP (Gary S. Trujillo) writes:
>The article seems to make a good case for the superior efficiency and
>performance of RCS, which seems due largely to the fact that most checkouts
>are of most-recent versions, which RCS can do quickly since it uses the
>scheme of storing the most recent version of files (incorporating embedded
>control information), and applies reverse deltas if older versions are
>requested.

Some time ago, I measured the relative speeds for checking out versions
of text files maintained by both SCCS and RCS.  Checking out the most
recent version was so fast for both systems that arguments based on
relative "efficiency" are suspect.  For checking out an arbitrary version,
SCCS was considerably faster that RCS, taking approximately the same time
as for the most recent version.  Contrary to claims one often hears
repeated, SCCS does not maintain a base document plus separate "forward
deltas" which must be applied one after the other to arrive at a version;
it keeps the delta information mixed into the document so that a one-pass
extraction can be done.

There are probably more UNIX systems licensed for SCCS, which has been a
standard part of AT&T UNIX releases since System III (inclusive), than
come with RCS already installed.  Obtaining, installing, and maintaining
RCS is probably not a big deal in a research environment, but it might be
a factor for commercial use.

Certainly both revision control systems have their problems, but they
beat doing without.

jay@silence.princeton.nj.us (Jay Plett) (07/22/89)

Several people have discussed the relative merits of RCS and SCCS.
Did I just miss it, or has nobody mentioned the greatest advantage
that RCS has over SCCS?  RCS is freely available as source code.

	jay@princeton.edu

louk@tslwat.UUCP (Lou Kates) (10/25/90)

Could anyone  who is  familiar with  both sccs and rcs comment on
the relative advantages and disadvantages of each, especially for
an environment in which a group of  people will be working on the
same piece of software?

Does either of these have facilities  for handling the case where
the people  are at  multiple sites connected only via uucp dialup
links? If neither does, are  there alternatives (especially  free
ones)?

Does rcs  have the capability  for tracking Modification Requests
(MRs) like sccs does?

Lou Kates, Teleride Sage Ltd., tslwat!louk@watmath.waterloo.edu
416-596-1940 ext. 210