NAME
get - get a version of an SCCS file (DEVELOPMENT)
SYNOPSIS
get [-begkmnlLpst][-c cutoff][-i list][-r SID][-x list] file...
DESCRIPTION
The get utility shall generate a text file from each named SCCS file
according to the specifications given by its options.
The generated text shall normally be written into a file called the g-
file whose name is derived from the SCCS filename by simply removing
the leading "s." .
OPTIONS
The get utility shall conform to the Base Definitions volume of
IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
The following options shall be supported:
-r SID
Indicate the SCCS Identification String (SID) of the version
(delta) of an SCCS file to be retrieved. The table 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 if the -e option is also used), as a function of the SID
specified.
-c cutoff
Indicate the cutoff date-time, in the form:
YY[MM[DD[HH[MM[SS]]]]]
For the YY component, values in the range [69,99] shall refer to years
1969 to 1999 inclusive, and values in the range [00,68] shall refer to
years 2000 to 2068 inclusive.
Note:
It is expected that in a future version of IEEE Std 1003.1-2001
the default century inferred from a 2-digit year will change.
(This would apply to all commands accepting a 2-digit year as
input.)
No changes (deltas) to the SCCS file that were created after the
specified cutoff date-time shall be included in the generated text
file. Units omitted from the date-time default to their maximum
possible values; for example, -c 7502 is equivalent to -c 750228235959.
Any number of non-numeric characters may separate the various 2-digit
pieces of the cutoff date-time. This feature allows the user to specify
a cutoff date in the form: -c "77/2/2 9:22:25".
-e Indicate that the get is for the purpose of editing or making a
change (delta) to the SCCS file via a subsequent use of delta.
The -e option used in a get for a particular version (SID) of
the SCCS file shall prevent further get commands from editing on
the same SID until delta is executed or the j (joint edit) flag
is set in the SCCS file. Concurrent use of get -e for different
SIDs is always allowed.
If the g-file generated by get with a -e option is accidentally ruined
in the process of editing, 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 shall be enforced when the -e option
is used.
-b Use with the -e option to indicate that the new delta should
have an SID in a new branch as shown in the table below. This
option shall be ignored if the b flag is not present in the file
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.
-i list
Indicate 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 Identification of a delta, may be in any form shown in
the "SID Specified" column of the table in the EXTENDED DESCRIPTION
section, except that the result of supplying a partial SID is
unspecified. A diagnostic message shall be written if the first SID in
the range is not an ancestor of the second SID in the range.
-x list
Indicate 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.
-k Suppress replacement of identification keywords (see below) in
the retrieved text by their value. The -k option shall be
implied by the -e option.
-l Write a delta summary into an l-file.
-L Write a delta summary to standard output. All informative output
that normally is written to standard output shall be written to
standard error instead, unless the -s option is used, in which
case it shall be suppressed.
-p Write the text retrieved from the SCCS file to the standard
output. No g-file shall be created. All informative output that
normally goes to the standard output shall go to standard error
instead, unless the -s option is used, in which case it shall
disappear.
-s Suppress all informative output normally written to standard
output. However, fatal error messages (which shall always be
written to the standard error) shall remain unaffected.
-m Precede each text line retrieved from the SCCS file by the SID
of the delta that inserted the text line in the SCCS file. The
format shall be:
"%s\t%s", <SID>, <text line>
-n Precede each generated text line with the %M% identification
keyword value (see below). The format shall be:
"%s\t%s", <%M% value>, <text line>
When both the -m and -n options are used, the <text line> shall be
replaced by the -m option-generated format.
-g Suppress 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 Use to access the most recently created (top) delta in a given
release (for example, -r 1), or release and level (for example,
-r 1.2).
OPERANDS
The following operands shall be supported:
file A pathname of an existing SCCS file or a directory. If file is a
directory, the get utility shall behave as though each file in
the directory were specified as a named file, except that non-
SCCS files (last component of the pathname does not begin with
s.) and unreadable files shall be silently ignored.
If exactly one file operand appears, and it is ’-’ , the standard input
shall be read; each line of the standard input is taken to be the name
of an SCCS file to be processed. Non-SCCS files and unreadable files
shall be silently ignored.
STDIN
The standard input shall be a text file used only if the file operand
is specified as ’-’ . Each line of the text file shall be interpreted
as an SCCS pathname.
INPUT FILES
The SCCS files shall be files of an unspecified format.
ENVIRONMENT VARIABLES
The following environment variables shall affect the execution of get:
LANG Provide a default value for the internationalization variables
that are unset or null. (See the Base Definitions volume of
IEEE Std 1003.1-2001, Section 8.2, Internationalization
Variables for the precedence of internationalization variables
used to determine the values of locale categories.)
LC_ALL If set to a non-empty string value, override the values of all
the other internationalization variables.
LC_CTYPE
Determine the locale for the interpretation of sequences of
bytes of text data as characters (for example, single-byte as
opposed to multi-byte characters in arguments and input files).
LC_MESSAGES
Determine the locale that should be used to affect the format
and contents of diagnostic messages written to standard error,
and informative messages written to standard output (or standard
error, if the -p option is used).
NLSPATH
Determine the location of message catalogs for the processing of
LC_MESSAGES .
TZ Determine the timezone in which the times and dates written in
the SCCS file are evaluated. If the TZ variable is unset or
NULL, an unspecified system default timezone is used.
ASYNCHRONOUS EVENTS
Default.
STDOUT
For each file processed, get shall write to standard output the SID
being accessed and the number of lines retrieved from the SCCS file, in
the following format:
"%s\n%d lines\n", <SID>, <number of lines>
If the -e option is used, the SID of the delta to be made shall appear
after the SID accessed and before the number of lines generated, in the
POSIX locale:
"%s\nnew delta %s\n%d lines\n", <SID accessed>,
<SID to be made>, <number of lines>
If there is more than one named file or if a directory or standard
input is named, each pathname shall be written before each of the lines
shown in one of the preceding formats:
"\n%s:\n", <pathname>
If the -L option is used, a delta summary shall be written following
the format specified below for l-files.
If the -i option is used, included deltas shall be listed following the
notation, in the POSIX locale:
"Included:\n"
If the -x option is used, excluded deltas shall be listed following the
notation, in the POSIX locale:
"Excluded:\n"
If the -p or -L options are specified, the standard output shall
consist of the text retrieved from the SCCS file.
STDERR
The standard error shall be used only for diagnostic messages, except
if the -p or -L options are specified, it shall include all informative
messages normally sent to standard output.
OUTPUT 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 filename shall be
formed from the SCCS filename: the application shall ensure that the
last component of all SCCS filenames is of the form s. module-name;
the auxiliary files shall be named by replacing the leading s with the
tag. The g-file shall be an exception to this scheme: the g-file is
named by removing the s. prefix. For example, for s.xyz.c, the
auxiliary filenames would be xyz.c, l.xyz.c, p.xyz.c, and z.xyz.c,
respectively.
The g-file, which contains the generated text, shall be created in the
current directory (unless the -p option is used). A g-file shall be
created in all cases, whether or not any lines of text were generated
by the get. It shall be owned by the real user. If the -k option is
used or implied, the g-file shall be writable by the owner only (read-
only for everyone else); otherwise, it shall be read-only. Only the
real user need have write permission in the current directory.
The l-file shall contain a table showing which deltas were applied in
generating the retrieved text. The l-file shall be created in the
current directory if the -l option is used; it shall be read-only 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 shall have the following format:
"%c%c%c %s\t%s %s\n", <code1>, <code2>, <code3>,
<SID>, <date-time>, <login>
where the entries are:
<code1>
A <space> if the delta was applied; ’*’ otherwise.
<code2>
A <space> if the delta was applied or was not applied and
ignored; ’*’ if the delta was not applied and was not ignored.
<code3>
A character indicating a special reason why the delta was or was
not applied:
I
Included.
X
Excluded.
C
Cut off (by a -c option).
<date-time>
Date and time (using the format of the date utility’s %y / %m /
%d %T conversion specification format) of creation.
<login>
Login name of person who created delta.
The comments and MR data shall follow on subsequent lines, indented one
<tab>. A blank line shall terminate each entry.
The p-file shall be used to pass information resulting from a get with
a -e option along to delta. Its contents shall also be 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, is set in the SCCS file.
The p-file shall be created in the directory containing the SCCS file
and the application shall ensure that the effective user has write
permission in that directory. It shall be writable by owner only, and
owned by the effective user. Each line in the p-file shall have the
following format:
"%s %s %s %s%s%s\n", <g-file SID>,
<SID of new delta>, <login-name of real user>,
<date-time>, <i-value>, <x-value>
where <i-value> uses the format "" if no -i option was specified, and
shall use the format:
" -i%s", <-i option option-argument>
if a -i option was specified and <x-value> uses the format "" if no -x
option was specified, and shall use the format:
" -x%s", <-x option option-argument>
if a -x option was specified. There can be an arbitrary number of lines
in the p-file at any time; no two lines shall have the same new delta
SID.
The z-file shall serve as a lock-out mechanism against simultaneous
updates. Its contents shall be the binary process ID of the command
(that is, get) that created it. The z-file shall be created in the
directory containing the SCCS file for the duration of get. The same
protection restrictions as those for the p-file shall apply for the z-
file. The z-file shall be created read-only.
EXTENDED DESCRIPTION
Determination of SCCS Identification String
SID* -b Keyletter 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 R does not hR.mL** hR.mL.(mB+1).1
exist
R - Trunk successor in R.mL R.mL.(mB+1).1
release > R and R
exists
R.L no No trunk successor R.L R.(L+1)
R.L yes No trunk successor R.L R.L.(mB+1).1
R.L - Trunk successor in R.L R.L.(mB+1).1
release >= R
R.L.B no No branch successor R.L.B.mS R.L.B.(mS+1)
R.L.B yes No branch successor R.L.B.mS R.L.(mB+1).1
R.L.B.S no No branch successor R.L.B.S R.L.B.(S+1)
R.L.B.S yes No branch successor R.L.B.S R.L.(mB+1).1
R.L.B.S - Branch successor 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 (that is, 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 shall
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.
& The -b option is effective only if the b flag 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.
System Date and Time
When a g-file is generated, the creation time of deltas in the SCCS
file may be taken into account. If any of these times are apparently in
the future, the behavior is unspecified.
Identification Keywords
Identifying information shall be 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:
%M% Module name: either the value of the m flag in the file, or if
absent, the name of the SCCS file with the leading s. removed.
%I% SCCS identification (SID) (%R%.%L% or %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.
%F% SCCS filename.
%P% SCCS absolute pathname.
%Q% The value of the q flag in the file.
%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 four-character string "@(#)" recognizable by what.
%W% A shorthand notation for constructing what strings:
%W%=%Z%%M%<tab>%I%
%A% Another shorthand notation for constructing what strings:
%A%=%Z%%Y%%M%%I%%Z%
EXIT STATUS
The following exit values shall be returned:
0 Successful completion.
>0 An error occurred.
CONSEQUENCES OF ERRORS
Default.
The following sections are informative.
APPLICATION USAGE
Problems can arise if the system date and time have been modified (for
example, put forward and then back again, or unsynchronized clocks
across a network) and can also arise when different values of the TZ
environment variable are used.
Problems of a similar nature can also arise for the operation of the
delta utility, which compares the previous file body against the
working file as part of its normal operation.
EXAMPLES
None.
RATIONALE
None.
FUTURE DIRECTIONS
The -lp option may be withdrawn in a future version.
SEE ALSO
admin , delta , prs , what
COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online
at http://www.opengroup.org/unix/online.html .