rcsvg - RCS version grab, form a stable copy of an RCS cached product
rcsvg [-cdfmnRv] [-S stage] version [source]
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-
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-
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
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)