Make incompatible with source control?
jlw at ariel.UUCP
jlw at ariel.UUCP
Sun Oct 21 02:40:41 AEST 1984
AT&T UNIX make is pretty incompatible with SCCS.
There are two main reasons:
1. SCCS uses a dating structure internal to the text of the
file, stored in the delta records of the header.
Make, on the other hand, uses only UNIX's idea of when
the file was changed. This can actually be dangerous
when combined with the absolutely brain-damaged rule
supplied with make for dealing with SCCSfiles. To wit:
get -p SCCSfile > object
This is diametrically opposed to SCCS's idea of what type
of file permissions warrant protection. In SCCS a file
out for editing, `get -e', and therefore writable is precious
and not to be overwritten, whereas a file obtained with plain
`get' is recreatable and does not need to be preserved.
I think that the rule should be something like:
if [ ! -w object ] then get SCCSfile
Think about what happens in the following scenario:
Monday: Programmer `get -e SCCSfile.c'
ed file.c; etc.
Tuesday: Programmer more ed file.c; etc
Wednesday: Source Administrator makes global
change to headers of all project source
files.
Thursday: Programmer `make's a new version
and wipes out two day's work.
Friday: Programmer realizes what went wrong and
goes on binge.
Saturday: Programmer meets Source Administrator
in bar and wastes him in cold blood and
we have another tragedy for our criminal court
system.
2. SCCS today uses leading context and make uses trailing context.
For example in SCCS
get s.file.c -> file.c
and in make this becomes
.c~ -> .c -> .o (with perhaps intermediate steps) -> (nothing)
This is pretty ugly. Does anyone out there remember
the first version of SCCS to run on UNIX which had the name
of the SCCSfile as plain file?
get file -> file.c (or .a or .s if the internal language flag
was set to C, unrecognized, or assembler respectively)
The above statement about SCCS versions means that there was an
original version of SCCS written by Mark Rochkind at BTL PY which
was either in spitbol or snobol4 and used the Librarian package
as its primmary storage medium. He then transferred this to PWB
UNIX as SCCS 2 in about 1974 or thereabouts. This was subsequently
completely redone by Alan Glasser in say 1976 as SCCS 3 which went
out to the public as simply SCCS. As far as I know the original
version of SCCS is still being used by BCR at PY.
Joseph L. Wood, III
AT&T Information Systems
Laboratories, Holmdel
(201) 834-3759
ariel!jlw
More information about the Comp.unix.wizards
mailing list