Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ get(1) — SunOS 4.0.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sccs(1)

admin(1)

delta(1)

help(1)

prs(1)

what(1)

sccsfile(5)

GET(1)  —  USER COMMANDS

NAME

get − get a version of an SCCS file

SYNOPSIS

/usr/sccs/get [ −begkmnpst ] [ −l[p]] [ −a seq-no.  ] [ −c cutoff ] [ −Gnewname ] [ −i list ] [ −rSID ]

[ −x list ] filename ...

DESCRIPTION

get generates an ASCII text file from each named SCCS file according to the specified option.  Arguments may be specified in any order, options apply to all named SCCS files.  If a directory is named, get behaves as though each file in the directory were specified as a named file, except that non-SCCS files (last component of the path name does not begin with ‘s.’) and unreadable files are silently ignored.  If a name of ‘−’ is given, the standard input is read; each line of the standard input is taken to be the name of an SCCS file to be processed.  Again, non-SCCS files and unreadable files are silently ignored. 

The generated text is normally written into a file called the g-file whose name is derived from the SCCS file name by simply removing the leading ‘s.’; (see also FILES, below). 

OPTIONS

Options are explained below as though only one SCCS file is to be processed, but the effects of any option argument applies independently to each named file. 

−b Used with the −e option to indicate that the new delta should have an SID in a new branch as shown in Table 1.  This option is ignored if the b flag is not present in the file (see admin(1)) or if the retrieved delta is not a leaf delta.  (A leaf delta is one that has no successors on the SCCS file tree.) 

Note: A branch delta may always be created from a non-leaf delta. 

−e This get is for editing or making a change (delta) to the SCCS file with a subsequent use of delta.  A ‘/usr/sccs/get  −e’ applied to a particular version (SID) of the SCCS file prevents further ‘/usr/sccs/get  −e’ commands on the same SID until delta is run or the j (joint edit) flag is set in the SCCS file (see admin(1)).  Concurrent use of ‘/usr/sccs/get  −e’ for different SIDs is always allowed. 

If the g-file generated by a ‘/usr/sccs/get  −e’ is accidentally ruined in the process of editing it, it may be regenerated by re-running a get with the −k option in place of the −e option. 

SCCS file protection specified with the ceiling, floor, and authorized user list stored in the SCCS file (see admin(1)) are enforced when the −e option is used. 

−g Do not actually retrieve text from the SCCS file.  It is primarily used to generate an l-file, or to verify the existence of a particular SID. 

−k Suppress replacement of identification keywords (see below) in the retrieved text by their value.  The −k option is implied by the −e option. 

−m Precede each text line retrieved from the SCCS file with the SID of the delta that inserted the text line in the SCCS file.  The format is: SID, followed by a horizontal TAB, followed by the text line. 

−n Precede each generated text line with the %M% identification keyword value (see below).  The format is: %M% value, followed by a horizontal TAB followed by the text line.  When both the −m and −n options are used, the format is: %M% value, followed by a horizontal TAB, followed by the −m option generated format. 

−p Write the text retrieved from the SCCS file to the standard output.  No g-file is created.  All output which normally goes to the standard output goes to the standard error file instead, unless the −s option is used, in which case it disappears. 

−s Suppress all output normally written on the standard output.  However, fatal error messages (which always go to the standard error file) remain unaffected. 

−t Access the most recently created (top) delta in a given release (for example, −r1), or release and level (for example, −r1.2). 

−l[p]
Write a delta summary into an l-file.  If −lp is used, the delta summary is written on the standard output and the l-file is not created.  See FILES for the format of the l-file. 

−aseq-no.
The delta sequence number of the SCCS file delta (version) to be retrieved (see sccsfile(5)).  This option is used by the comb(1) command; it is not a generally useful option, and users should not use it.  If both the −r and −a options are specified, the −a option is used.  Care should be taken when using the −a option in conjunction with the −e option, as the SID of the delta to be created may not be what one expects.  The −r option can be used with the −a and −e options to control the naming of the SID of the delta to be created. 

−ccutoff
cutoff date-time, in the form: YY[MM[DD[HH[MM[SS]]]]]

No changes (deltas) to the SCCS file which were created after the specified cutoff date-time are included in the generated ASCII text file.  Units omitted from the date-time default to their maximum possible values; that is, −c7502 is equivalent to −c750228235959.  Any number of non-numeric characters may separate the various 2 digit pieces of the cutoff date-time.  This feature allows one to specify a cutoff date in the form: ‘−c77/2/29:22:25’.  Note: this implies that one may use the %E% and %U% identification keywords. 

−Gnewname
If a get is allowed on filename (filename is not writable by anyone) place the version that get produces in a file called newname.

−ilist A list of deltas to be included (forced to be applied) in the creation of the generated file.  The list has the following syntax:

<list> ::= <range > | <list> , <range>
<range> ::= SID | SID − SID

SID, the SCCS ID of a delta, may be in any form shown in the ‘SID Specified’ column of Table 1.  Partial SIDs are interpreted as shown in the ‘SID Retrieved’ column of Table 1. 

−rSID
The SCCS ID string (SID) of the version (delta) of an SCCS file to be retrieved.  Table 1 below shows, for the most useful cases, what version of an SCCS file is retrieved (as well as the SID of the version to be eventually created by delta(1) if the −e option is also used), as a function of the SID specified. 

−xlist
A list of deltas to be excluded (forced not to be applied) in the creation of the generated file.  See the −i option for the list format. 

For each file processed, get responds (on the standard output) with the SID being accessed and with the number of lines retrieved from the SCCS file. 

If the −e option is used, the SID of the delta to be made appears after the SID accessed and before the number of lines generated.  If there is more than one named file or if a directory or standard input is named, each filename is printed (preceded by a NEWLINE) before it is processed.  If the −i option is used included deltas are listed following the notation ‘Included’; if the −x option is used, excluded deltas are listed following the notation ‘Excluded’. 

TABLE 1. Determination of SCCS Identification String

SID∗−b OptionOtherSIDSID of Delta Specified Used† Conditions Retrieved to be Created none‡noR defaults to mRmR.mLmR.(mL+1) none‡yesR defaults to mRmR.mLmR.mL.(mB+1).1 RnoR > mRmR.mLR.1∗∗∗ RnoR = mRmR.mLmR.(mL+1) RyesR > mRmR.mLmR.mL.(mB+1).1 RyesR = mRmR.mLmR.mL.(mB+1).1 R−R < mR andhR.mL∗∗hR.mL.(mB+1).1 R does not exist R−Trunk succ.#R.mLR.mL.(mB+1).1 in release > R and R exists R.LnoNo trunk succ.R.LR.(L+1) R.LyesNo trunk succ.R.LR.L.(mB+1).1 R.L−Trunk succ.R.LR.L.(mB+1).1 in release ≥ R R.L.BnoNo branch succ.R.L.B.mSR.L.B.(mS+1) R.L.ByesNo branch succ.R.L.B.mSR.L.(mB+1).1 R.L.B.SnoNo branch succ.R.L.B.SR.L.B.(S+1) R.L.B.SyesNo branch succ.R.L.B.SR.L.(mB+1).1 R.L.B.S−Branch succ.R.L.B.SR.L.(mB+1).1

∗ ‘R’, ‘L’, ‘B’, and ‘S’ are the ‘release’, ‘level’, ‘branch’, and ‘sequence’ components of the SID, respectively; ‘m’ means ‘maximum’.  Thus, for example, ‘R.mL’ means ‘the maximum level number within release R’; ‘R.L.(mB+1).1’ means ‘the first sequence number on the new branch (that is, maximum branch number plus one) of level L within release R’.  Note: if the .SM SID specified is of the form ‘R.L’, ‘R.L.B’, or ‘R.L.B.S’, each of the specified components must exist. 

∗∗ ‘hR’ is the highest existing release that is lower than the specified, nonexistent, release R.

∗∗∗ Forces creation of the first delta in a new release. 

# Successor. 

† The −b option is effective only if the b flag (see admin(1)) is present in the file.  An entry of ‘−’ means ‘irrelevant’. 

‡ This case applies if the d (default SID) flag is not present in the file.  If the d flag is present in the file, the SID obtained from the d flag is interpreted as if it had been specified on the command line.  Thus, one of the other cases in this table applies. 

IDENTIFICATION KEYWORDS

Identifying information is inserted into the text retrieved from the SCCS file by replacing identification keywords with their value wherever they occur.  The following keywords may be used in the text stored in an SCCS file:

Keyword Value

%M% Module name: either the value of the m flag in the file (see admin(1)), or if absent, the name of the SCCS file with the leading s.  removed. 

%I% SCCS identification (SID) (%R%.%L%.%B%.%S%) of the retrieved text. 

%R% Release. 

%L% Level. 

%B% Branch. 

%S% Sequence. 

%D% Current date (YY/MM/DD). 

%H% Current date (MM/DD/YY). 

%T% Current time (HH:MM:SS). 

%E% Date newest applied delta was created (YY/MM/DD). 

%G% Date newest applied delta was created (MM/DD/YY). 

%U% Time newest applied delta was created (HH:MM:SS). 

%Y% Module type: value of the t flag in the SCCS file (see admin(1)). 

%F% SCCS file name. 

%P% Fully qualified SCCS file name. 

%Q% The value of the q flag in the file (see admin(1)). 

%C% Current line number.  This keyword is intended for identifying messages output by the program such as ‘this shouldn’t have happened’ type errors.  It is not intended to be used on every line to provide sequence numbers. 

%Z% The 4-character string @(#) recognizable by what(1). 

%W% A shorthand notation for constructing what strings for program files. 

%W% = %Z%%M%<horizontalTAB>%I%

%A% Another shorthand notation for constructing what strings. 

%A% = %Z%%Y% %M% %I%%Z%

FILES

Several auxiliary files may be created by get, These files are known generically as the g-file, l-file, p-file, and z-file.  The letter before the hyphen is called the tag.  An auxiliary file name is formed from the SCCS file name: the last component of all SCCS file names must be of the form s.module-name, the auxiliary files are named by replacing the leading s with the tag.  The g-file is an exception to this scheme: the g-file is named by removing the s.  prefix.  For example, s.xyz.c, the auxiliary file names would be xyz.c, l.xyz.c, p.xyz.c, and z.xyz.c, respectively. 

The g-file, which contains the generated text, is created in the current directory (unless the −p option is used).  A g-file is created in all cases, whether or not any lines of text were generated by the get.  It is owned by the real user.  If the −k option is used or implied its mode is 644; otherwise its mode is 444.  Only the real user need have write permission in the current directory. 

The l-file contains a table showing which deltas were applied in generating the retrieved text.  The l-file is created in the current directory if the −l option is used; its mode is 444 and it is owned by the real user.  Only the real user need have write permission in the current directory. 

Lines in the l-file have the following format:

a.  A blank character if the delta was applied; ∗ otherwise. 

b.  A blank character if the delta was applied or was not applied and ignored; ∗ if the delta was not applied and was not ignored. 

c.  A code indicating a “special” reason why the delta was or was not applied:

‘I’: Included. 
‘X’: Excluded.
‘C’: Cut off (by a −c option). 

d.  Blank. 

e.  SCCS identification (SID). 

f.  TAB character. 

g.  Date and time (in the form YY/MM/DD HH:MM:SS) of creation. 

h.  Blank. 

i.  Login name of person who created the delta. 

The comments and MR data follow on subsequent lines, indented one horizontal TAB character.  A blank line terminates each entry. 

The p-file passes information resulting from a ‘/usr/sccs/get  −e’ along to delta.  Its contents are also used to prevent a subsequent execution of a ‘/usr/sccs/get  −e’ for the same SID until delta is executed or the joint edit flag, j, (see admin(1)) is set in the SCCS file.  The p-file is created in the directory containing the SCCS file and the effective user must have write permission in that directory.  Its mode is 644 and it is owned by the effective user.  The format of the p-file is: the gotten SID, followed by a blank, followed by the SID that the new delta will have when it is made, followed by a blank, followed by the login name of the real user, followed by a blank, followed by the date-time the get was executed, followed by a blank and the −i option if it was present, followed by a blank and the −x option if it was present, followed by a NEWLINE.  There can be an arbitrary number of lines in the p-file at any time; no two lines can have the same new delta SID. 

The z-file serves as a lock-out mechanism against simultaneous updates.  Its contents are the binary (2 bytes) process ID of the command (that is, get) that created it.  The z-file is created in the directory containing the SCCS file for the duration of get.  The same protection restrictions as those for the p-file apply for the z-file.  The z-file is created mode 444. 

SEE ALSO

sccs(1), admin(1), delta(1), help(1), prs(1), what(1), sccsfile(5)

Programming Utilities and Libraries

DIAGNOSTICS

Use help for explanations. 

BUGS

If the effective user has write permission (either explicitly or implicitly) in the directory containing the SCCS files, but the real user does not, only one file may be named when the −e option is used. 

Sun Release 4.0  —  Last change: 5 January 1988

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026