The get command generates a file
by extracting the contents from each named SCCS file
according to the specifications given by its arguments.
The arguments may be specified in any order, but all
arguments 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
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 removing the leading s..
Each of the arguments is explained below as though
only one SCCS file is to be processed, but the
effects of any argument applies independently to each named file.
-rSID
The SCCS identification string (SID)
of the version (delta) of an SCCS file to be retrieved.
Table 1 shows what version of an SCCS file is retrieved
as a function of the SID specified. Also the
SID of the version to be eventually created by
delta(CP)
if the -e option is used.
-ccutoff
The cutoff date and time, in the form:
YY[MM[DD[HH[MM[SS]]]]]
Fro the YY component,
values in the range 69-99 refer to years in the twentieth
century (1969 to 1999 inclusive); values in the range 00-68
refer to years in the twenty-first century (2000 to 2068
inclusive).
No changes (deltas) to the SCCS file which were
created after the specified cutoff date-time are
included in the extracted 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 you to specify a cutoff date
in the form: "-c77/2/2 9:22:25".
Note that this implies that you may use the %E% and %U%
identification keywords (see below) for nested gets.
get "-c%E% %U%" s.file
-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:
SID, the SCCS Identification of a delta,
may be in any form shown in the ``SID Specified''
column of Table 1.
-xlist
A list of deltas to be excluded in the creation of
the generated file.
See the -i option for the list format.
-e
Indicates that the get is for the purpose of editing
or making a change (delta) to the SCCS file via a
subsequent use of
delta(CP).
The -e option used in a get for a
particular version (SID) of the SCCS file
prevents further gets for editing on the same
SID until delta is executed or the
j (joint edit) flag is set in the SCCS file (see
admin(CP)).
Concurrent use of get -e for different SIDs
is always allowed.
If the g-file generated by get
with an -e option is accidentally ruined
in the process of editing it, it may be regenerated by
re-executing the get command with the
-k option in place of the -e option.
SCCS file protection specified via the ceiling,
floor, and authorized user list stored in the SCCS file (see
admin(CP))
is enforced when the -e option is used.
-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(CP))
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.
Partial SIDs are interpreted as shown in the
``SID Retrieved'' column of Table 1.
-k
Suppresses replacement of identification keywords (see below)
in the retrieved text by their value.
The -k option is implied by the -e option.
-l[p]
Causes a delta summary to be written into an l-file.
If -lp is used, then an l-file is not
created; the delta summary is written on standard output instead.
-p
Causes the text retrieved from the SCCS file to
be written on standard output.
No g-file is created.
All output which normally goes to the standard output goes to
file descriptor 2 instead, unless the -s option
is used, in which case it disappears.
-s
Suppresses all output normally written on the standard output.
However, fatal error messages (which always go to file
descriptor 2) remain unaffected.
-m
Causes each text line retrieved from the SCCS file
to be preceded by 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
Causes each generated text line to be preceded 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.
-g
Suppresses the actual retrieval of text from the SCCS file.
It is primarily used to generate an l-file,
or to verify the existence of a particular SID.
-t
Used to access the most recently created delta in a given
release (for example, -r1), or release and level
(for example, -r1.2).
-wstring
Substitute string for all occurrences of %W% when getting the file.
-aseq-no.
The delta sequence number of the SCCS file delta
(version) to be retrieved (see
sccsfile(FP)).
This option is used by the
comb(CP)
command; it is not a generally useful option.
If both the -r and -a options are
specified, only 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 you
expect.
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.
For each file processed, get responds (on
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 file name is printed (preceded
by a new-line) 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 Option
Other
SID
SID of Delta
Specified
Used+
Conditions
Retrieved
to be Created
none++
no
R defaults to mR
mR.mL
mR.(mL+1)
none++
yes
R defaults to mR
mR.mL
mR.mL.(mB+1).1
R
no
R > mR
mR.mL
R.1***
R
no
R = mR
mR.mL
mR.(mL+1)
R
yes
R > mR
mR.mL
mR.mL.(mB+1).1
R
yes
R = mR
mR.mL
mR.mL.(mB+1).1
R
-
R < mR and
hR.mL**
hR.mL.(mB+1).1
R does not exist
R
-
Trunk succ.#
R.mL
R.mL.(mB+1).1
in release > R
and R exists
R.L
no
No trunk succ.
R.L
R.(L+1)
R.L
yes
No trunk succ.
R.L
R.L.(mB+1).1
R.L
-
Trunk succ.
R.L
R.L.(mB+1).1
in release R
R.L.B
no
No branch succ.
R.L.B.mS
R.L.B.(mS+1)
R.L.B
yes
No branch succ.
R.L.B.mS
R.L.(mB+1).1
R.L.B.S
no
No branch succ.
R.L.B.S
R.L.B.(S+1)
R.L.B.S
yes
No branch succ.
R.L.B.S
R.L.(mB+1).1
R.L.B.S
-
Branch succ.
R.L.B.S
R.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 (for example, maximum branch number
plus one) of level L within release R''.
Note that if the 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.
***
This is used to force creation of the first delta in
a new release.
#
Successor.
+
The -b option is effective only if the b flag (see
admin(CP))
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, then
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(CP)),
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(CP)).
%F%
SCCS file name.
%P%
Fully qualified SCCS file name.
%Q%
The value of the q flag in the file (see
admin(CP)).
%C%
Current line number.
This keyword is intended for identifying messages output by
the program such as ``this should not 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(CP).
%W%
A shorthand notation for constructing
what(CP)
strings for system program files.
%W% = %Z%%M%<horizontal-tab>%I%
%A%
Another shorthand notation for constructing
what(CP)
strings for non-UNIX-type system program files.
%A% = %Z%%Y% %M% %I%%Z%
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 needs 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 needs 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 delta.
The comments and MR data follow on
subsequent lines, indented one horizontal tab character.
A blank line terminates each entry.
The p-file is used to pass information resulting
from a get with a -e option along to delta.
Its contents are also used to prevent a subsequent
execution of get with a -e option
for the same SID until delta is executed
or the joint edit flag, j, (see
admin(CP))
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 argument if
it was present, followed by a blank and the -x
option argument if it was present, followed by a new-line.
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 (for example, 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 with mode 444.
Files
g-file
Existed before the execution of delta; removed
after completion of delta.
p-file
Existed before the execution of delta; may exist
after completion of delta.
q-file
Created during the execution of delta; removed
after completion of delta.
x-file
Created during the execution of delta; renamed to
SCCS file after completion of delta.
z-file
Created during the execution of delta; removed
during the execution of delta.
d-file
Created during the execution of delta; removed
after completion of delta.
/usr/bin/bdiff
Program to compute differences between the ``gotten'' file
and the g-file.
Notes
If the effective user has write permission (either explicitly
or implicitly) in the directory containing the SCCS
files, but the real user does not, then only one file may be
named when the -e option is used.