Man Linux: Main Page and Category List

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