RCSVG(1)                                                              RCSVG(1)

       rcsvg - RCS version grab, form a stable copy of an RCS cached product

       rcsvg [-cdfmnRv] [-S stage] version [source]
       rcsvg -h
       rcsvg -V

       Rcsvg  extracts  a consistent set of revisions from the RCS cache for a
       product.  These revisions (which all have a common symbolic number) are
       referred to as a stable version of the product.

       The  positional parameter version is the symbolic number of the version
       of the product requested.  Rcsvg co's from each RCS cache in the source
       directory (default ''.'')  the revision version dumping the output to a
       parallel directory structure under stage (default /tmp/version).

       The checked-out source in the source  hierarchy  is  left  undisturbed.
       Any  symbolic links in the source are copied as-is.  Rcsvg descends any
       subdirectories (except RCS) after finishing the current level.

       Some error conditions are flagged with bits  in  rcsvg's  exit  status,
       some exit code from sysexits.h may also be returned:

              1   RCS cache file not readable
              2   found a character or block special file
              4   symbolic link through / or off top
              8   found a trash file in RCS

       This command reads the environment variable RCSVG for options.

              Any files which cmp(1) the same as their already staged revision
              are not updated.  This is limits the impact  of  make(1)  depen-
              dency updates.

              Use  the  version  parameter as a date to co's -d option, rather
              than a parameter to co's -r option.

              The -m flag creates read-only files in the stage directory which
              subsequent  collections  cannot  write over: this flag forces an
              unlink of all target files (that exist) before we try to  check-
              out on top of them.

              Print only a brief help message.

              Use  the  modes  on the RCS cache files, rather than the checked
              out revisions, for the staged files.

              Do not execute commands, trace only.

              Create a symbolic link back the the  RCS  cache  directory  from
              which we built the checked out files.  This is mostly useful for
              running rcsclean(1) to cleanup the stage when we are done  play-

       -S stage
              Specify  a staging area we should construct/update the requested
              version.  The default stage is /tmp/version.

              Output verbose shell-like commands the describe actions.

              Show only the standerd version banner.

       rcsvg -S /tmp/ksb Second /usr/msrc/local/bin/rcsvg
              Extract the version of this program named ''Second''.

       rcsvg -c Four
              Extract the version ''Four''  of  the  program  in  the  current
              directory  to  /tmp/Four.   Do  not  change  any files which are
              already there and are the same.

       rcsvg -S /tmp/l2s -d "16:00 lt" /usr/msrc/local/sbin/level2s
              Fetch the version of level2s from before I started working on it
              today at 16:00 (localtime).

       The  checking  for  symbolic  links that leave the subtree is not fully
       implemented (yet).

       KS Braunsdorf
       rcsvg ~ not spammed ~ at ksb.npcguild.org

       sh(1), rcsintro(1),  co(1),  mkdir(1),  cmp(1),  make(1),  level2s(8l),
       ln(1), symlink(7), msync(8l)

                                     LOCAL                            RCSVG(1)