Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site ariel.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxj!houxm!hogpc!houti!ariel!jlw From: jlw@ariel.UUCP Newsgroups: net.unix,net.unix-wizards Subject: Re: Make incompatible with source control? Message-ID: <765@ariel.UUCP> Date: Sat, 20-Oct-84 12:40:41 EDT Article-I.D.: ariel.765 Posted: Sat Oct 20 12:40:41 1984 Date-Received: Sun, 21-Oct-84 14:48:29 EDT References: <2490@dartvax.UUCP> Organization: AT&T-ISL, Holmdel, NJ Lines: 76 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