7. The Code Management System (CMS)

DEC’s Code Management System (CMS) is a library system that stores source files, keeps track of changes made to the files, and records user access to the files. The primary purpose of CMS is to prevent multiple users from altering the same file at the same time.

Many files mentioned in this document are “protected” by CMS, for example panels, help files, access files, display files, SLCCOM COM files, database files, and software source code. For many of these a COM file exists to enter all the CMS commands for you, but even in those instances, it’s nice to know what’s going on--it might come in handy if Something Bad happens, or merely just help you appreciate that a COM file exists so you don’t have to type all this nonsense every time.

A concise table can be found in Appendix A which gives all the easy-to-forget information about CMS protected files (library name, reference directory, and edit com file). Not all the necessary privileges to modify files within all these libraries are granted to operators’ accounts when they are created. If you’re trying to reserve or replace files and it tells you that you don’t have privilege, talk to your supervisor or Nancy Spencer to get the privilege granted to you.

7.1 The SLCCMS

Note to the reader: this section contains advanced background information for many previous sections of this document and is an excellent reference in case “Something Bad Happens” and you need to give CMS commands directly to SLCCMS. It will be expanded in the future. If you only plan to edit a file (panel, access, database, display, or other CMS protected entity which has its own EDIT COM file), you don’t need the information in this section. The next revision of this document will contain a vast expansion of this CMS information.

7.1.1 What is SLCCMS?

SLCCMS is our interface to the VAX Code Management System (CMS) and can only be accessed from MCCDEV.

7.1.2 Starting CMS

To start CMS, from MCCDEV type slccms. This will give you a CMS prompt. Also all of the following commands can be typed at the DCL prompt without running SLCCMS by typing:

>slccms command

If you have lots of CMS commands to type, it’s easier to run SLCCMS and exit or CTRL-Z when you’re done.

Within CMS help works and gives you the standard list of choices and specifies the commands qualifiers and parameters. You can also get this outside of CMS at any DCL prompt by typing help cms.

The first thing you need to do is to select the library you’re going to be working in:

SlcCMS>set library CMS_lib_name

The libraries for the examples above are:

CMS_ACCESS Access Files
CMS_COM_GEN General SLCCOM COM Files
CMS_COM_SCP SLCCOM COM files for the SCP
CMS_DBSFILE Database (DBS) Files
CMS_DSP Display (DSP) Files
CMS_HELP_DISPHELP SCP Help Files
CMS_SLCPNL SCP Panel Files


If you just want to look, but not change the files, you can type or eve the REF directory files without getting into CMS. If you edit a REF file, you won’t be able to save any changes (it’s a read-only directory).

The set library command “sticks” for your entire session (i.e. until you alter it or log out). If you need to see what the last library you used was, type:

>show logical cms$lib

If you want to alter an already existing file, you’ll need to reserve it first:

SlcCMS>reserve filename “remark”

filename is the full filename including file type. The remark should be something friendly and sensible and should give the reason why you are reserving the file (i.e. what you plan to do with it now that you have the power to alter it). If you want CMS to give you a copy of the current version of the file, you should specify:

SlcCMS>reserve/output=file_spec filename “remark”

If not, after reserving, leave CMS by typing exit, and copy the source file to your directory to edit it. (There is no difference between the version CMS will give you and the version you get by copying from the source directory. It’s just a matter of preference which method you use.) The source directories for the examples above are:

REF_ACCESS Access Files
SLCCOM Both GEN and SCP COM files
REF_DBSFILE DBS Files
REF_DSP DSP Files
REF_HELP_DISPHELPSCP Help Files
REF_SLCPNL or SLCPNLPanel Files


If you are creating a new file, once you have the file all ready to go, from the directory containing the file, type:

SlcCMS> create element filename “remark”

This may prompt you if you want to do this without compiling first, say “yes.”

If you’re altering an already-in-existence file, then once you’re done modifying, you’ll need to replace, maybe compile, and unreserve. To replace type:

SlcCMS>replace/if_changed filename “remark”

Once again this may prompt you if you want to do this without compiling first, and again say “yes.”

If there are changes, this command will put the new version in the appropriate CMS library and unreserve it. If there aren’t changes, it will just unreserve it for you. If you just want to unreserve and not mess with all of this (i.e. you’re not going to make any changes at this time) type:

SlcCMS>unreserve filename “remark”

If you have mucked with a database file, a DSP file, a help file, or a panel file, you need to “compile” at this point.

For database files, you do a DBEDIT of a “miniEDIT file” which contains only the changes you made to the DBS file (see Section 5.4 for more details).

For DSP files, you type:

>cmpdsp filename

For help files and panel files, type:

>cmp filename

7.1.3 Showing a CMS Protected File's history

Within SLCCMS, once you’ve set the appropriate library just type:

SLCCMS> show history file_name

This will list for you all the versions of the file, who acted on it, and what action (reservation, creation, replacement, etc.) was taken. This is useful if your desired file is already reserved by someone, and you want to get in touch with them.

7.2 CMS Files Summary Table

The following table summarizes the vital information about commonly modified files protected by CMS.

CMS Library Source Code
Directory
Edit COM File Type of File
CMS_ACCESSREF_ACCESSEDITACCESSAccess Files
CMS_COM_GENSLCCOM EDITCOM_GENGeneral COM Files
CMS_COM_SCPSLCCOM EDITCOM_SCP SCP COM Files
CMS_DBSFILEREF_DBSFILEEDITDBSDatabase (DBS) Files
CMS_DSPREF_DSP EDITDSP Display (DSP) Files
CMS_HELP_DISPHELPREF_HELP_DISPHELPEDITHELPSCP Help (HLP) Files
CMS_MPG_BGRPREF_MPG_BGRPEDITBGRPBGRP Files
CMS_MPS_ALG_MPSLREF_MPS_ALG_MPSLEDITMPSNew MPS Algorithm
(MPSL) files
CMS_SLCPNLREF_SLCPNL or
SLCPNL
EDITP or
EDITPNL
SCP Panel (PNL) files
CMS_SLCTXTSLCTXTnoneSCP Software