[comp.unix.questions] SCCS Vs RCS Vs ADC

ramesh@rs20dev.UUCP (ramesh) (03/25/91)

Hi,
     I am sure this question has been asked many times, but still.......

Could somebody tell me the advantages and disadvantages of these:

     SCCS, RCS and ADC (Aide-De-Camp)

Please e-mail me direct.
Thanks in advance.
Ramesh@rs20dev.UUCP
607-779-5169

runyan@hpcuhc.cup.hp.com (Mark Runyan) (03/29/91)

>/ ramesh@rs20dev.UUCP (ramesh) /  7:33 am  Mar 25, 1991 /
>Could somebody tell me the advantages and disadvantages of these:
>     SCCS, RCS and ADC (Aide-De-Camp)
>
>Please e-mail me direct.

Sorry, my mailer didn't want to get the address you gave so:
-----------------------------------------------------------------------------
Summary:

  I've reviewed many SCM systems, but my findings may or may not apply
  to you as yet.  Still, I'll pass on my info in three sections:

  1. RCS vs SCCS
  2. ADC vs RCS
  3. Software Configuration Management literature

  Perhaps this will give you some data.  (Bias warning: I'm an RCS user)



1. RCS vs SCCS

 The following is a post I made regarding what I know of RCS vs SCCS.  It
 is merely an overview.

>A simple questions that has a complicated and long answer.
>
>Possible short answers.
>
>1. SCCS is supported by AT&T.  RCS isn't.
>
>2. 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 has
>   the ability to use symbolic names to point to sets of revisions.
>
>3. [religious argument] RCS has an easier interface for first time users.
>   SCCS has more options for determining when a specific line of code
>   was added to a system.
>
>4. RCS files are directly editable.  SCCS files should only be acted on 
>   by the SCCS tools.  (While you *may* edit an SCCS file, you will have
>   to recalculate the checksum using the admin program.  Also, editing
>   either RCS or SCCS files is a bad idea just because mistakes are so
>   easy to make and so fatal to the history of the file).
>
>5. RCS keeps history in files with a ",v" suffix.  SCCS keeps history in
>   files with a "s." prefix.  Some Make programs recognize the "s."
>   prefix while having trouble with ",v" suffix.  Your mileage will vary.
>
>6. Locks are kept in separate files for SCCS.  A lock on an RCS file is 
>   kept in the RCS file.
>
>7. RCS stores its revisions so retrieval of the latest revision is quick
>   and easy, but early revisions take longer.  SCCS stores revisions so
>   that recovering any given revision takes a constant amount of time which
>   increases with the number of revisions stored.  (RCS uses backward
>   deltas.  SCCS uses a "merged delta" concept. SCCS does *NOT* use
>   forward deltas).
>
>8. You can translate SCCS to RCS, but not the other way.  
>
>9. They use different keywords that are expanded in the text.  For SCCS
>   the keyword "%R%" is replaced with the revision number if the file
>   is checked out for reading.  In RCS, the keyword $Revision$ has the
>   revision number added to it when the file is checked out (either
>   locked or not).
>
>Other than that (and a few more that others may throw in) they are essentially
>the same.  As a comparison of the commands:
>
>   SCCS Command                RCS Command             Explanation
> admin -i -nfile s.file          ci file,v     Checks in the file for the
>						first time, creating the
>						revision history file.
> get s.file                      co file,v     Check out a file for reading.
> get -e s.file                  co -l file,v   Check out a file for modification
> delta s.file                   ci file,v      Check in a file previously
>						locked
> prs s.file                     rlog file,v    Print a history of the file.
>sccsdiff -rx -ry s.file  rcsdiff -rx -ry file,v  Compare two revisions.
>    ???                        rcs -l file,v   Lock the latest revision
>    ???                        rcs -u file,v   Unlock the latest revision.
>						Possible to break another's 
>						lock, but mail is sent to
>						the other person to explain
>						why.
>
>For more details, read
>
>"RCS - A system for Version Control", Walter Tichy, _Software_Practice_and_
>  Experience_, Vol 15(7), 637-654 (July 1985)
>
>"Design, Implementation, and Evaluation of a Revision Control System", Walter 
>  Tichy, _IEEE_, 58-67, (??? 1982)

2. RCS vs ADC

I've had the the chance to examine ADC and figure out how we might make
some use of it.  The biggest concern I have to date on ADC is the fact that
the company owns the source and contracts out to consultants to help
provide support for the tool (rather than support it directly).  It appears
that the expectation is for you to hire a consultant who spends a few
months setting the tools up with you and then works with you to make
sure that your needs are being met.  RCS and SCCS at least allow the
option for you to examine the source code...

Anyway, about ADC:

It uses the concept of change sets.  All changes made to a group of
files is filed as one change set (as you are working, you have an
active changeset).  You have the choice of keeping a set of change sets
to make a release.  This makes it easy to support bug fixes for 
particular requests because you can decide to keep or not a set of
changes to make a release.

3. Software Configuration Management literature

General books:

_Software_Configuration_Management_:_Coordination_for_Team_Productivity_,
  by Wayne A. Babich, Addison-Wesley, 1986, ISBN 0-201-10161-0.

_The_Program_Development_Process_, by J.D. Aron, Addison-Wesley, 1983,
  ISBN 0-201-14451-4.

_Software_Configuration_Management_:_An_Investment_in_Product_Integrity_,
  by E. Bersoff, V. Henderson, and S. Siegel, Prentice-Hall, 1980,
  ISBN 0-13-821769-6.

_Proceedings of the International Workshop on Software Version and
  Configuration Control_, edited by Jurgen F.H. Winkler, German Chapter
  of the ACM, Grassau, FRG, January 27-29, 1988.  ISBN 3-519-02671-6

_Proceedings of the 2nd International Workshop on Software Configuration
  Management_, Princeton, New Jersey, Oct 24, 1989.

_Workshop proceedings on Software Management_, USENIX, New Orleans,
  Louisiana, April 3-4, 1989

Papers:

"RCS - A System for Version Control", Walter Tichy, _Software-Practice_and_
  Experience_, Vol 15(7), p637-654, (July 1985).

"Build-A Software Construction Tool", V. Erickson and J. Pellegrin,
  _AT&T_Bell_Lab_Technical_Journal_, Vol 63(6), p1049-1059, (July-August 
  1984).

"Design, Implementation, and Evaluation of a Revision Control System",
  Walter Tichy, _IEEE_, Vol ?(?), p 58-67, (??? 1982).


"Project Hygiene", Vic Stenning, _USENIX_Workshop_Proceedings_on_Software_
  _Management_, p1-9, (April 3-4, 1989).

"Software Manaagement Using a CASE Environment", M. Honda and T. Miller,
  _USENIX_Workshop_Proceedings_on_Software_Management_, p11-16,
  (April 3-4, 1989).

"Boxes, Links, and Parallel Trees: Elements of a Configuration Management
  System", Andy Glew, _USENIX_Workshop_Proceedings_on_Software_Management_, 
  p17-28(April 3-4, 1989).
 
"Controlling Software for Multiple Projects", Dale Miller, _USENIX_Workshop_
  _Proceedings_on_Software_Management_, p39-50, (April 3-4, 1989).

"CCSLAND", Nathaniel Bronson III, _USENIX_Workshop_Proceedings_on_Software_
  _Management_, p87-94, (April 3-4, 1989).

"The Release Engineering of 4.3BSD", M. McKusick, M. Karels, and K. Bostic,
  _USENIX_Workshop_Proceedings_on_Software_Management_, p95-100,
  (April 3-4, 1989).

"Rtools: Tools for Software Management in a Distributed Computing
  Environment", H harrison, s. Schaefer, T. Yoo, _USENIX_Conference_
  _Proceedings_, p85-106, (June 20-24, 1988).

"A Schema for Configuration Management", Terrence Miller, 
  _Proceedings_of_the_2nd_Int'l_Workshop_on_Software_Configuration_Management,
  October 24-27 1989, Princeton. Published as ACM SIGSOFT Software Engineering
  Notes, Volume 17(8) pp 26-29, November 1989.

_Generic_Software_Configuration_Management:_Theory_and_Design_, by
  Douglas Wiebe, University of Washington, Technical Report 90-07-03;
  published 1990.

"Software Configuration Management of Computer-Aided Design Tools",
  by Peter Nicklin, Hewlett Packard Report DTC-89-01, December 22, 1989.

"Version Control in Families of Large Programs", Juergen Winkler,
  _Proceedings_of_the_9th_International_Conference_on_Software_Engineering,
  Monterey, CA, March 30-April 2, 1987, pp150-161