Source Code Control in the Eastern District of Michigan

Source files for development projects in the Eastern District of Michigan are kept in the custody of the Source Code Control System, which allows various versions to be kept straight, and revision histories and change details to be reviewed, fostering a better understanding of the development, history, and present inner workings of a piece of code or other document. As of this writing, only UNIX-related projects have been placed in the SCCS library, but there is no reason other projects or documents could not be.

The source library is a directory tree rooted at /projects, and an http gateway allows any web browser to retrieve revision histories, details of changes, or any version of the source itself, from any file in the library.

So that SCCS can play its designed coordinating role when sources are created and edited by several people, the SCCS files and directories under /projects are owned by a special effective user ID conferred by our invoke front-end, configured under the name sccs. That name must be used as a prefix to some of the SCCS commands when working with our source library.

Specifically, operations that involve editing, or preparing to edit, SCCS file contents require an sccs prefix on the command line. Operations involving only review or retrieval do not. For example, to simply retrieve the latest version of the wonderpong program, this command could be used:

  $  get  /projects/ciss/pure-genius/s.wonderpong
However, in the unlikely event that a flaw should be discovered in wonderpong, the following command would be needed to check the file out for editing:
  $  sccs  get  -e  /projects/ciss/pure-genius/s.wonderpong
The prefix will naturally be required for the delta command as well.

It doesn't hurt to use the prefix on any SCCS command, though a second or two of invoke overhead can be saved by leaving it off where it isn't needed. If the prefix is inadvertently omitted from a command that involves modification, the operation will fail, often with a message like cannot create lock file. Remain calm and repeat the command with the sccs prefix.

There is one slight embellishment of the familiar SCCS commands in order to simplify the invocation script, and that is that the admin command is split into a create command which is used to create a new SCCS file, and an admin command which does everything else. They both accept just the same options and arguments described in the admin manual entry for their respective functions. The option -fi is wired in so that SCCS will insist on a version identification string in the format adopted in this district. Also, a control section is added to each newly-created SCCS file to specify the login(s) that should be permitted to change options later using admin; the initial list is wired into the invocation script.

The command sccs mkdir dirname is provided to create a new directory in the source library hierarchy, with the proper ownership and permissions.