From: tomh@evolving.com (Tom Hartung)
Newsgroups: comp.software.config-mgmt,comp.unix.questions
Subject: Re: RCS vs SCCS???  Recommendations?
Date: 30 Jan 1995 23:42:33 GMT
Organization: Evolving Systems, Inc.
Message-ID: <3gjth9$4ec@citadel.evolving.com>

Mike Hatz (mhatz@nyx10.cs.du.edu) wrote:
: We're currently on Vaxes, are in process of setting up
: a SUN environment to hold new applications and to rehost
: eventually the VAX applications also.  Currently our CM 
: group is using CMS and we're picking between RCS and SCCS
: for the Suns.   I've read through "RCS-A System for Version 
: Control", I'm also trying to locate Reference 4 of that
: document:
: Tichy, Walter F. "Design, Implementation, and Evaluation of
: a Revision Control System" in Proceedings of the 6th Inter-
: national Conference on Software Engineering, pp 58-67, ACM
: IEEE, IPS, NBS, Sept. 1982.

: Additionally, I'd just like to hear from those who've gone
: through this decision process already and why you 
: chose the way you did.

: Either reply through NEWS or send a reply to mrhatz@raven.phs.com
: Thanks a lot!

Hello,

In my experience, the difference between the ways the two
systems handle version identification keywords is enough to
make RCS much more attractive than SCCS.

This is probably due to the fact that developers at our company
(Evolving Systems, Inc. (ESI)) rely heavily on a "reference
area", which is a directory tree that contains all the latest
checked-in versions of a set of files.

They go into the reference area and start looking around, and before
they know it they're editing a file.  They try to save it and get
a "permission denied" error, whereupon they realize they
haven't checked the file out.  So they run a script to lock the
file, so that they don't have to edit it all over again.

When this is done using SCCS, the keywords remain expanded.  That
is, the values are now constants rather than keywords.  After one
checkin these values are wrong.  (One really frustrating aspect of
this difference is that very few people seem to understand this
problem.)

Of course this problem, like many others, can be solved by creating
a shell interface script that searches for a given pattern in every
file (the pattern must be different for different types of files)
and replaces part of this pattern with fresh keywords every time a
file is checked in.  (Note that just because something's possible
does not mean it's easy.)

That's the view from where I sit.

Following is a FAQ that I got from someone, I can't remember whom.
I'm surprised no one has posted this yet.  Perhaps the Free Software
Foundation is considered a manufacturer, and my posting this is a
major faux pas?  Please note that I do not work for them, but rather
work for about 300 developers, most of whom do not care about keywords,
rather, they just want to check their file in.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Archive-name: unix-faq/faq/part7
Version: $Id: part7,v 2.4 1994/01/14 14:58:06 tmatimar Exp $

These seven articles contain the answers to some Frequently Asked
Questions often seen in comp.unix.questions and comp.unix.shell.
Please don't ask these questions again, they've been answered plenty
of times already - and please don't flame someone just because they may
not have read this particular posting.  Thank you.

This collection of documents is Copyright (c) 1994, Ted Timar.
All rights reserved.  Permission to distribute the collection is
hereby granted providing that distribution is electronic, no money
is involved, reasonable attempts are made to use the latest version
and all credits and this copyright notice are maintained.
Other requests for distribution will be considered.

All information here has been contributed with good intentions, but
none of it is guaranteed either by the contributors or myself to be
accurate.  The users of this information take all responsibility for
any damage that may occur.

Many FAQs, including this one, are available on the archive site
rtfm.mit.edu in the directory pub/usenet/news.answers.
The name under which a FAQ is archived appears in the "Archive-Name:"
line at the top of the article.  This FAQ is archived as
"unix-faq/faq/part[1-7]".

These articles are divided approximately as follows:

      1.*) General questions.
      2.*) Relatively basic questions, likely to be asked by beginners.
      3.*) Intermediate questions.
      4.*) Advanced questions, likely to be asked by people who thought
	   they already knew all of the answers.
      5.*) Questions pertaining to the various shells, and the differences.
      6.*) An overview of Unix variants.
      7.*) An comparison of configuration management systems (RCS, SCCS).

This article includes answers to:

      7.1)  RCS vs SCCS:  Introduction
      7.2)  RCS vs SCCS:  How do the interfaces compare?
      7.3)  RCS vs SCCS:  What's in a Revision File?
      7.4)  RCS vs SCCS:  What are the keywords?
      7.5)  What's an RCS symbolic name?
      7.6)  RCS vs SCCS:  How do they compare for performance?
      7.7)  RCS vs SCCS:  Version Identification.
      7.8)  RCS vs SCCS:  How do they handle problems?
      7.9)  RCS vs SCCS:  How do they interact with make(1)?
      7.10) RCS vs SCCS:  Conversion
      7.11) RCS vs SCCS:  Support
      7.12) RCS vs SCCS:  Command Comparison
      7.13) RCS vs SCCS:  Acknowledgements
      7.14) Can I get more information on configuration management systems?

If you're looking for the answer to, say, question 7.5, and want to skip
everything else, you can search ahead for the regular expression "^7.5)".

While these are all legitimate questions, they seem to crop up in
comp.unix.questions or comp.unix.shell on an annual basis, usually
followed by plenty of replies (only some of which are correct) and then
a period of griping about how the same questions keep coming up.  You
may also like to read the monthly article "Answers to Frequently Asked
Questions" in the newsgroup "news.announce.newusers", which will tell
you what "UNIX" stands for.

With the variety of Unix systems in the world, it's hard to guarantee
that these answers will work everywhere.  Read your local manual pages
before trying anything suggested here.  If you have suggestions or
corrections for any of these answers, please send them to to
tmatimar@empress.com.

----------------------------------------------------------------------

Subject: RCS vs SCCS:  Introduction
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.1)  RCS vs SCCS:  Introduction

      The majority of the replies (in a recent poll) were in favor of
      RCS, a few for SCCS, and a few suggested alternatives such as CVS.

      Functionally RCS and SCCS are practically equal, with RCS having
      a bit more features since it continues to be updated.

      Note that RCS learned from the mistakes of SCCS...

------------------------------

Subject: RCS vs SCCS:  How do the interfaces compare?
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.2)  RCS vs SCCS:  How do the interfaces compare?

      RCS has an easier interface for first time users.  There are less
      commands, it is more intuitive and consistent, and it provides
      more useful arguments.

      Branches have to be specifically created in SCCS.  In RCS, they
      are checked in as any other version.

------------------------------

Subject: RCS vs SCCS:  What's in a Revision File?
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.3)  RCS vs SCCS:  What's in a Revision File?

      RCS keeps history in files with a ",v" suffix.  SCCS keeps
      history in files with a "s." prefix.

      RCS looks for RCS files automatically in the current directory or
      in a RCS subdirectory, or you can specify an alternate RCS file.
      The sccs front end to SCCS always uses the SCCS directory.  If
      you don't use the sccs front end, you must specify the full SCCS
      filename.

      RCS stores its revisions by holding a copy of the latest version
      and storing backward deltas.  SCCS uses a "merged delta"
      concept.

      All RCS activity takes place within a single RCS file.  SCCS
      maintains several files.  This can be messy and confusing.

      Editing either RCS or SCCS files is a bad idea because mistakes
      are so easy to make and so fatal to the history of the file.
      Revision information is easy to edit in both types, whereas one
      would not want to edit the actual text of a version in RCS.  If
      you edit an SCCS file, you will have to recalculate the checksum
      using the admin program.

------------------------------

Subject: RCS vs SCCS:  What are the keywords?
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.4)  RCS vs SCCS:  What are the keywords?

      RCS and SCCS use different keywords that are expanded in the
      text.  For SCCS the keyword "1.1" is replaced with the revision
      number if the file is checked out for reading.

      The RCS keywords are easier to remember, but keyword expansion is
      more easily customized in SCCS.

      In SCCS, keywords are expanded on a read-only get.  If a version
      with expanded keywords is copied into a file that will be
      deltaed, the keywords will be lost and the version information in
      the file will not be updated.  On the other hand, RCS retains the
      keywords when they are expanded so this is avoided.

------------------------------

Subject: What's an RCS symbolic name?
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.5)  What's an RCS symbolic name?

      RCS allows you treat a set of files as a family of files while
      SCCS is meant primarily for keeping the revision history of
      files.

      RCS accomplishes that with symbolic names: you can mark all the
      source files associated with an application version with `rcs
      -n', and then easily retrieve them later as a cohesive unit.  In
      SCCS you would have to do this by writing a script to write or
      read all file names and versions to or from a file.

------------------------------

Subject: RCS vs SCCS:  How do they compare for performance?
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.6)  RCS vs SCCS:  How do they compare for performance?

      Since RCS stores the latest version in full, it is much faster in
      retrieving the latest version.  After RCS version 5.6, it is also
      faster than SCCS in retrieving older versions.

------------------------------

Subject: RCS vs SCCS:  Version Identification.
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.7)  RCS vs SCCS:  Version Identification.

      SCCS is able to determine when a specific line of code was added
      to a system.

------------------------------

Subject: RCS vs SCCS:  How do they handle problems?
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.8)  RCS vs SCCS:  How do they handle problems?

      If you are missing the sccs or rcs tools, or the RCS or SCCS file
      is corrupt and the tools don't work on it, you can still retrieve
      the latest version in RCS.  Not true with SCCS.

------------------------------

Subject: RCS vs SCCS:  How do they interact with make(1)?
Date: Wed, 30 Dec 1992 10:41:51 -0700
>From: Blair P. Houghton <bhoughto@sedona.intel.com>

7.9)  RCS vs SCCS:  How do they interact with make(1)?

      The fact that SCCS uses prefixes (s.file.c) means that make(1)
      can't treat them in an ordinary manner, and special rules
      (involving '~' characters) must be used in order for make(1) to
      work with SCCS; even so, make(1) on some UNIX platforms will not
      apply default rules to files that are being managed with SCCS.
      The suffix notation (file.c,v) for RCS means that ordinary
      suffix-rules can be used in all implementations of make(1), even
      if the implementation isn't designed to handle RCS files
      specially.

------------------------------

Subject: RCS vs SCCS:  Conversion.
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.10) RCS vs SCCS:  Conversion.

      RCS provides a program to convert from SCCS to RCS.  One would
      have to write his own program to convert from RCS to SCCS.

------------------------------

Subject: RCS vs SCCS:  Support
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.11) RCS vs SCCS:  Support

      SCCS is supported by AT&T.  RCS is supported by the Free Software
      Foundation.  Therefore RCS runs on many more platforms, including
      PCs.

      Most make programs recognize SCCS's "s."  prefix while GNU make
      is one of the few that handles RCS's ",v" suffix.

      Some tar programs have a -F option that ignores either RCS
      directories, or SCCS directories or both.

------------------------------

Subject: RCS vs SCCS:  Command Comparison
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.12) RCS vs SCCS:  Command Comparison

      SCCS                        RCS                   Explanation
      ====                        ===                   ===========

      sccs admin -i -nfile file   ci file               Checks in the file
                                                        for the first time,
                                                       creating the revision
                                                        history file.

      sccs get file               co file               Check out a file for
                                                        reading.

      sccs edit file              co -l file            Check out a file for
                                                        modification.

      sccs delta file             ci file               Check in a file
                                                        previously locked.

      what file                   ident file            Print keyword
                                                        information.

      sccs prs file               rlog file             Print a history of
                                                        the file.

      sccs sccsdiff -rx -ry file  rcsdiff -rx -ry file  Compare two
                                                        revisions.

     sccs diffs file             rcsdiff file          Compare current with
                                                        last revision.

     sccs edit -ix-y file        rcsmerge -rx-y file   Merge changes between
                                                        two versions into
                                                        file.

      ???                         rcs -l file           Lock the latest
                                                        revision.

      ???                         rcs -u file           Unlock the latest
                                                        revision.  Possible
                                                        to break another's 
                                                        lock, but mail is
                                                        sent to the other
                                                        user explaining why.

------------------------------

Subject: RCS vs SCCS:  Acknowledgements
Date: Sat, 10 Oct 92 19:34:39 +0200
>From: Bill Wohler <wohler@sap-ag.de>

7.13) RCS vs SCCS:  Acknowledgements

      I would like to thank the following persons for contributing to
      these articles.  I'd like to add your name to the list--please
      send comments or more references to Bill Wohler <wohler@sap-ag.de>.

	Karl Vogel <vogel@c-17igp.wpafb.af.mil>
	Mark Runyan <runyan@hpcuhc.cup.hp.com>
	Paul Eggert <eggert@twinsun.com>
	Greg Henderson <henders@infonode.ingr.com>
	Dave Goldberg <dsg@mbunix.mitre.org>
	Rob Kurver <rob@pact.nl>
	Raymond Chen <rjc@math.princeton.edu>
	Dwight <dwight@s1.gov>

------------------------------

Subject: Can I get more information on configuration management systems?
Date: Thu Oct 15 10:27:47 EDT 1992
>From: Ted Timar <tmatimar@empress.com>

7.14) Can I get more information on configuration management systems?

      Bill Wohler, who compiled all of the information in this part of
      the FAQ, has compiled much more information.  This information is
      available for ftp from ftp.wg.omron.co.jp (133.210.4.4) under
      "pub/unix-faq/docs/rev-ctl-sys".

------------------------------

End of unix/faq Digest part 7 of 7
**********************************

-- 
Ted Timar - tmatimar@empress.com
Empress Software, 3100 Steeles Ave E, Markham, Ont., Canada L3R 8T3

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Hope this helps,
Tom H.

Newsgroups: comp.software.config-mgmt
Subject: Re: RCS vs SCCS??? Recommendations?
Message-ID: <3goiv9$vp@engnews2.Eng.Sun.COM>
From: treacy@slipknot.Eng.Sun.COM (John Treacy)
Date: 1 Feb 1995 18:12:57 GMT
Reply-To: treacy@slipknot.Eng.Sun.COM
Organization: Sun Microsystems, Inc.

In article 61u@spot.twinsun.com, eggert@twinsun.com (Paul Eggert) writes:
>treacy@slipknot.Eng.Sun.COM (John Treacy) writes:

>> The SCCS implementation is better suited (performance wise) for many of the
>> tasks that SW/TW has to do.
>
>I'm skeptical.  Do you have performance measurements, or are you just guessing?
>If SCCS must always read the entire history file, whereas RCS only
>needs to read an initial prefix, I don't see why SCCS is ``better
>suited (performance wise)''.

There are some tasks that have more in common with prt and rlog than get/co.
For instance, SW/TW has a graphical frontend to SCCS, VersionTool, which
allows you to do sccs operations by point and click. Getting the delta
history and presenting it requires us to read just the top of the SCCS
file. RCS on the other hand keeps delta comments with the deltas, requiring
a read of the entire file to display the delta history. There are other
parts of the product (SW/TW) which also benefit from having the entire delta 
table at the head of the file.

John




From: eggert@twinsun.com (Paul Eggert)
Newsgroups: comp.software.config-mgmt
Subject: Re: RCS vs SCCS??? Recommendations?
Date: 2 Feb 1995 20:28:47 -0800
Organization: Twin Sun Inc, El Segundo, CA, USA
Message-ID: <3gsbdv$hbu@spot.twinsun.com>

treacy@slipknot.Eng.Sun.COM (John Treacy) writes:

> Getting the delta history and presenting it requires us to read just the
> top of the SCCS file. RCS on the other hand keeps delta comments with
> the deltas, requiring a read of the entire file to display the delta history.

I guess it depends on what model your user interface has of the delta history.
If you start with a user interface that is tuned for SCCS, and port it
to RCS, you will find places where RCS doesn't quite match SCCS and is
therefore less efficient for your interface.

You might try altering the user interface slightly so that it works
quickly with RCS as well.  In RCS's case, for example, you might omit
the delta comments (at the user's option of course), or fetch them in lazily.

