[comp.lang.c] SCCS REVISION HISTORY

petej@itcode.Eng.Sun.COM (Pete Jolly) (10/20/90)

I come from an environment that used RCS rather heavily and
now I am forced (much to my disgust) to use SCCS for source
archive control.  I don't like SCCS because in my opinion
it is too hard to get started with and doesn't offer the
overall flexibility that RCS does.  I will concede that
it may be much more powerful for those large scale projects
that have multiple programmers working on the same software.  

One such thing that I found missing is the ability to store
source code revision history in the source file itself.  RCS
lets you do this by replacing a history variable with the history
of the revisions.  This allows you to place the history where
you want it to go in the extracted version.  SCCS has the "prs" 
option which allows you to print out the revision history
on stdout but that, of course, is not in the original source.  If
someone has a copy of the source file and wants to know what
the revision history is, they also need access to the
SCCS files. 

Does anyone out there have any ideas on how to incorporate
revision history into SCCS source files??

Thanks in advance,

Pete Jolly.

korsberg@abaa.uucp (Ed Korsberg) (10/22/90)

In article <143950@sun.Eng.Sun.COM> petej@itcode.Eng.Sun.COM (Pete Jolly) writes:
>
>Does anyone out there have any ideas on how to incorporate
>revision history into SCCS source files??
>
>Thanks in advance,
>
>Pete Jolly.


I have not used RCS but I incorporate revision strings in my source files
by including the following line for C source files:

/****************************************************************************
 Copyright 1990 Your company name
 %W%, Date %G%
*****************************************************************************/

Assuming the source file is named foobar.c  the above line %W%, Date %G%
will expand to
        @(#)foobar.c  1.7, Date 10/22/90
                      ^ ^
Major revision--------! !
Minor revision----------!

This expansion is done when SCCS checks a file back into the database.
-- 
Ed Korsberg             E-mail: korsberg@aa.ab.com
Allen Bradley Inc.      phone:  313-998-2470
555 Briarwood Circle
Ann Arbor, Mich 48104

meissner@osf.org (Michael Meissner) (10/25/90)

In article <5633@abaa.UUCP> korsberg@abaa.uucp (Ed Korsberg) writes:

| I have not used RCS but I incorporate revision strings in my source files
| by including the following line for C source files:
| 
| /****************************************************************************
|  Copyright 1990 Your company name
|  %W%, Date %G%
| *****************************************************************************/
| 
| Assuming the source file is named foobar.c  the above line %W%, Date %G%
| will expand to
|         @(#)foobar.c  1.7, Date 10/22/90
|                       ^ ^
| Major revision--------! !
| Minor revision----------!
| 
| This expansion is done when SCCS checks a file back into the database.

But this is not what was asked for.  Under RCS, you have a line with
$Log$ in it, RCS will copy the contents of the reason for the change
into the file at that point, keeping a running history of the changes
made to the file since it was created (or until you delete the log
entries manually).

Without building programs that sit on top of sccs, I don't know of
anyway to automagically add the revision history.
--
Michael Meissner	email: meissner@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142

Do apple growers tell their kids money doesn't grow on bushes?

jbr0@cbnews.att.com (joseph.a.brownlee) (10/25/90)

In article <MEISSNER.90Oct24151352@osf.osf.org>, meissner@osf.org (Michael
Meissner) writes:
> Without building programs that sit on top of sccs, I don't know of
> anyway to automagically add the revision history.

Without building a program that sits on top of SCCS, you can't do much of
_anything_ with it.  I wrote such a system using shell scripts for a previous
employer.  It automatically made what some people call "s-lists", or lists of
the version of each source file associated with a given version of the binary.
It also handled things like only making deltas of those files that had actually
been changed and creating "what" labels in the generated binaries.

A solution like this can be written, but it isn't exactly trivial to do, and
as with anything, your returns in convenience are directly proportional to
the effort you expend in writing it.  And, once you get going with it, you
find that even a small bug in your front-end programs can wreak havoc.  Still,
if in a similar situation, I might write something like this again, because
it _was_ useful and I believe it did save a lot of time and effort.

Disclaimer:  No, I do not have a copy of those scripts.

-- 
   -      _   Joe Brownlee, Analysts International Corp. @ AT&T Network Systems
  /_\  @ / `  471 E Broad St, Suite 1610, Columbus, Ohio 43215   (614) 860-7461
 /   \ | \_,  E-mail: jbr@cblph.att.com     Who pays attention to what _I_ say?
 "Scotty, we need warp drive in 3 minutes or we're all dead!" --- James T. Kirk