Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ get(1) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

admin(1)

delta(1)

help(1)

prs(1)

what(1)

bdiff(1)



get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


NAME
      get - get a version of an SCCS file

SYNOPSIS
      get [-aseq-no.]  [-ccutoff] [-ilist] [-rSID] [-wstring] [-xlist] [-l[p]]
            [-b] [-e] [-g] [-k] [-m] [-n] [-p] [-s] [-t] file. . .

DESCRIPTION
      get generates an ASCII text file from each named SCCS file according to
      the specifications given by its keyletter arguments, which begin with -.
      The arguments may be specified in any order, but all keyletter 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 (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.

      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 the FILES section below).

      Each of the keyletter arguments is explained below as though only one
      SCCS file is to be processed, but the effects of any keyletter argument
      apply independently to each named file.

           -rSID      The SCCS identification 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 keyletter is
                      also used), as a function of the SID specified.

           -ccutoff   Cutoff date-time, in the form:

                            YY[MM[DD[HH[MM[SS]]]]]

                      No changes (deltas) to the SCCS file that 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 two-digit pieces
                      of the cutoff date-time.  This feature allows one to
                      specify a cutoff date in the form:

                            -c"77/2/2 9:22:25".

           -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:



10/89                                                                    Page 1







get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


                            <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 Table 1.

           -xlist     A list of deltas to be excluded in the creation of the
                      generated file.  See the -i keyletter 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(1).  The -e keyletter 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(1)].  Concurrent use of get -e for
                      different SIDs is always allowed.

                      If the g-file generated by get with an -e keyletter is
                      accidentally ruined in the process of editing it, it may
                      be regenerated by re-executing the get command with the
                      -k keyletter in place of the -e keyletter.

                      SCCS file protection specified via the ceiling, floor,
                      and authorized user list stored in the SCCS file [see
                      admin(1)] are enforced when the -e keyletter is used.

           -b         Used with the -e keyletter to indicate that the new delta
                      should have an SID in a new branch as shown in Table 1.
                      This keyletter 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.)  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
                      keyletter is implied by the -e keyletter.

           -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 the standard output instead.  See
                      IDENTIFICATION KEYWORDS for detailed information on the
                      l-file.

           -p         Causes the text retrieved from the SCCS file to be
                      written on the standard output.  No g-file is created.
                      All output that normally goes to the standard output goes
                      to file descriptor 2 instead, unless the -s keyletter is


Page 2                                                                    10/89







get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


                      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 keyletters are
                      used, the format is:  %M% value, followed by a horizontal
                      tab, followed by the -m keyletter 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).

           -w string  Substitute string for all occurrences of %W% when getting
                      the file.  Substitution occurs prior to keyword
                      expansion.

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

      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 keyletter 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 keyletter is used, included deltas are listed
      following the notation ``Included''; if the -x keyletter is used,
      excluded deltas are listed following the notation ``Excluded''.


10/89                                                                    Page 3







get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


             TABLE 1. 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 < mR and
R                  -          R does not exist     hR.mL**       hR.mL.(mB+1).1
_______________________________________________________________________________
                              Trunk succ.#
R                  -          in release > R       R.mL          R.mL.(mB+1).1
                              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
_______________________________________________________________________________
                              Trunk succ.
R.L                -          in release > R       R.L           R.L.(mB+1).1

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 (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 must exist.




Page 4                                                                    10/89







get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


      **    ``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 keyletter 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, 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(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 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 the what
                command.
      %W%       A shorthand notation for constructing what strings for UNIX
                System program files.  %W% = %Z%%M%<tab>%I%
      %A%       Another shorthand notation for constructing what strings for
                non-UNIX 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


10/89                                                                    Page 5







get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


      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 keyletter 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 keyletter 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 keyletter 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), or
                  ``C'' (cut off by a -c keyletter).
            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 an -e
      keyletter along to delta.  Its contents are also used to prevent a
      subsequent execution of get with an -e keyletter 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 keyletter
      argument if it was present, followed by a blank and the -x keyletter
      argument if it was present, followed by a new-line.  There can be an


Page 6                                                                    10/89







get(1)           UNIX System V(Enhanced Programming Utilities)           get(1)


      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 with
      mode 444.

FILES
      g-file          Created by the execution of get.
      p-file          [see delta(1)]
      q-file          [see delta(1)]
      z-file          [see delta(1)]
      bdiff           Program to compute differences between the ``gotten''
                      file and the g-file.

SEE ALSO
      admin(1), delta(1), help(1), prs(1), what(1)
      bdiff(1) in the User's Reference Manual

DIAGNOSTICS
      Use help(1) for explanations.

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 keyletter is used.

























10/89                                                                    Page 7





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