Provided by: atfs_1.4pl6-13_amd64 bug

NAME

       retrv - retrieve a revision of a file

SYNOPSIS

       retrv [ version binding options ] [ options ] files ..

       Options: [ -?cfilq ] [ -help ] [ -copy ] [ -dest path ] [ -fix ] [ -force ]
                [ -intent message ] [ -lock ] [ -quiet ] [ -stdin ] [ -version ] [ -xpoff ]

       vcat [ version binding options ] [ options ] files ..

       Options: [ -?q ] [ -help ] [ -quiet ] [ -version ] [ -xpoff ]

DESCRIPTION

       Retrv retrieves a specified, previously saved version of a file from  the  version  object
       base.  The  version  archive  is  expected  to reside in the AtFS subdirectory. A selected
       version will by default be retrieved into a file in the directory where it was  originally
       saved.   If  just  a  copy  of  a  file  version  shall be retrieved, this behavior can be
       overridden with the -dest option. If a busy version is created with the -lock  option,  it
       must  be  created  in the directory from where it was saved. This is necessary to maintain
       the spatial relationship between the busy version and the corresponding  history  archive,
       residing in the AtFS subdirectory.

       Retrieve  tries to be careful if an attempt is made to overwrite an existing busy-version:
       unless -f (-force) is specified, retrv will ask the caller for  permission.   If  no  busy
       version  exists,  one  is  created with the same modes as the formerly saved version. If a
       busy version exists, its modes are preserved.

       If the program is invoked as vcat, the specified version(s) will be  printed  on  standard
       output. No status change of the object base will occur in this case.  vcat behaves similar
       to the cat(1) command: if just a filename is given, vcat displays the most  recent  status
       of  the referenced object. If a busy version does exist it will be selected as most recent
       status. If no busy version exists, vcat displays the most recently saved version.

ATTRIBUTE CITATIONS

       It is possible to cite any of a file-version's attributes  within  the  the  body  of  the
       version.  This can be done by using attribute citation expressions. These expressions have
       the form "$__attributename$".  Version attributes that are cited  within  the  text  of  a
       stored  revision  are  expanded  by default. In this case, the citation expression will be
       substituted by the cited attribute's value. For a  list  of  predefined  attribute  names,
       check the vadm(1) manual page.

       There  are  three  basic  kinds of attribute values: genuine values, reference values, and
       execution values. Genuine values are simply strings that are  assigned  to  an  attribute.
       Reference values are pointers to files or AtFS-versions whose contents will be substituted
       in place of an attribute-citation.   Reference  values  are  strings  that  begin  with  a
       circumflex-character,   typically   followed   by   pathname,  e.g.   ^/usr/local/lib/std-
       header[2.4]. Execution values are names of executable programs, whose standard  output  is
       substituted  in  place  of  an attribute-citation. Execution values are strings that begin
       with an exclamation-mark character, typically followed by the name of  the  program,  e.g.
       !/bin/date.  Execution  values  can  be  used  to  generate highly dynamic attributes or a
       primitive form of event-triggers.

       When expanding an attribute citation, retrv first looks for an attribute of the  mentioned
       name  within  the version's set of associated attributes. If no attribute of that name can
       be found, the environment is searched for a variable of  that  name.  In  case  the  cited
       attribute  exists  and  has  a value, the value is itself searched for attribute-citations
       that are expanded recursively.  If neither an attribute nor an environment variable of the
       cited  name  can  be  found,  no  substitution takes place and the expression will be left
       unchanged. The same is true if a referenced object of a reference value does not exist, or
       an  execution value happens to not be executable.  Attribute citation expressions are also
       left unchanged if a revision is retrieved with the -lock option.  Expansion  of  attribute
       citation  within documents can be controlled by the pseudo-attribute citations "$__xpoff$"
       and "$__xpon$".

OPTIONS

       For version selection, any version binding option, as described  on  the  vbind(1)  manual
       page, may be given, or a version bind directive may be given in brackets added to the file
       name.

       Additional options are:

       -?, -help
              print brief instructions about using this program.

       -c, -copy
              Do not check for equality. Usually, retrv checks whether  an  existing  destination
              file  is  identical  to  the version to be retrieved and suppresses copying in this
              case. This behaviour is mainly for efficiency reasons and may be disabled by the -c
              switch.

       -dest path
              retrieve  the  specified  version from the object base and install a copy it in the
              directory denoted by path. As this directory may be  a  long  way  apart  from  the
              directory  containing  the  AtFS  archives,  this  copy of the retrieved version is
              separated from its history and subsequently unrelated to the object history it came
              from.  Proper  object histories require a constant spatial relationship of any busy
              versions and the corresponding archives. This relationship requires the archives to
              reside in a subdirectory named AtFS.

       -fix   attempt  to reserve the privilege to add a new version to an old generation (insert
              a new minor revision into an old major revision)  within  the  object  history.  If
              successful,  the  user who issued the command holds a generation lock. There can be
              only one lock per generation, preventing simultaneous updates  of  the  generation.
              The generation lock is, by convention, a revision lock (see vadm -lock) attached to
              the version with the highest version number within a generation.

              The -fix switch is intended to support concurrency of the main development  process
              and  maintenance activities (such as bug fixing) for older releases. When a version
              is retrieved with the purpose to fix it, it is called  the  fixpoint  version.  The
              fixpoint  version  accumulates  all  fixes  applied  to a baseline version within a
              generation. One important advantage of this policy is the elimination of  the  need
              to  create  a  branch  for each fix that must later be merged with the ``mainline''
              version, containing previous fixes. So, if retrv is invoked with ``-fix''  it  will
              restore  the  fixpoint  version  (the most recent minor revision within the implied
              generation) rather than the explicitly referenced version. However, retrv issues  a
              warning, if the baseline- and the fixpoint version are not identical.

              To  insert  a  fix into an old generation, use the -fix option of the save command.
              When setting a lock on a  generation,  the  requesting  user  is  prompted  for  an
              optional  description of the planned changes.  The -fix switch is incompatible with
              -lock.

       -f, -force
              force the reinstallation of the specified version as busy  version  without  asking
              the user, even if a writable (possibly unsaved) busy version exists.

       -i message
              set  message  as intent text describing the changes that are intended to be applied
              to a busy version that is installed by retrv. When message starts with an  at  sign
              (@),  it  is interpreted as filename and the text contained in the file is takes as
              intent text. If message is ``-'', the change intent is read  from  standard  input.
              The  latter  case  is  identical to specifying the command line switch -stdin. This
              option requires the -lock switch to be set in order to be effective.

       -l, -lock
              attempt to reserve the privilege to add a new version to the main development  line
              of  an  object  history, thus preventing multiple programmers working upon the same
              object base from interfering with each other by saving  concurrent  updates.   When
              setting a new lock on an object history, prompt the requesting user for an optional
              description of the planned changes.  The -lock switch is incompatible with -fix.

       -q, -quiet
              quiet operation. No messages are printed on standard output.   If  a  current  busy
              version  exists,  it  will not be overwritten by the specified version unless -f is
              set. This option is useful for batch operation.

       -stdin force retrv to read the message describing the change intent from stdin rather than
              fork an editor.

       -version
              print version identification for this program.

       -xpoff Do not expand attribute citations in the restored file.

FILES

       All  revisions  of  documents are retrieved from archive files located in the subdirectory
       AtFS.

SEE ALSO

       vbind(1), save(1), vadm(1)

BUGS

       Redirection of stdin in conjunction with option -stdin doesn't work.

AUTHOR

       Axel.Mahler@cs.tu-berlin.de