https://invisible-island.net/ded/cm_tools/
link2rcs - RCS directory template
link2rcs [options] [file-specifications]
Link2rcs makes (an empty) template of an existing directory tree. All
directory names are copied; "RCS" directories are transformed into
symbolic links pointing to the original tree.
Link2rcs is used to make a working copy of a source-controlled module
which is configured in a tree of directories (e.g., bin, lib, include,
src, with dependent subdirectories). By making a template directory
(i.e., with the same relative pathnames), you may check-out files and
continue to develop the module. By making symbolic links to the
original set of rcs directories, link2rcs facilitates the use of rcs:
ci and co assume that the rcs files are in a subdirectory named "RCS".
Link2rcs recognizes the following options:
-a process all directory names. Like the ls option "-a", this enables
the processing of names beginning with ".".
-bnum
directs link2rcs to avoid generating directories which do not
correspond to a source-directory with the given rcs baseline. Use
"-b0" to suppress directories which do not correspond to any rcs
baseline.
-dpath
specifies the destination directory. You must always specify this
if you don't specify the "-s" option.
-eenv
(Apollo only) specifies the name of an environment variable which
can be used to substitute for the beginning of the link-text.
-f makes links to files as well as directories.
-F makes hard links to files as well as directories.
-m merge against destination, i.e., don't quit if a target directory
or link is found.
-n (no-op) causes link2rcs to compute the modifications and to display
them (according to the setting of "-q" and "-v"), but not to modify
the target directory tree.
-o overwrite files and links in the destination, replacing them with
links, either symbolic or hard, depending on whether you have
specified the "-f" or "-F" option.
-r directs link2rcs to compute relative pathnames for the symbolic
links which it creates. Normally the links are made with an
absolute pathname (e.g., "/u1/foo/RCS").
-q (quiet) undoes "-v", eliminates most messages.
-spath
specifies the source directory. Normally you need not specify
this; it defaults to ".".
-v (verbose) shows shell-command equivalents to the modifications
which are made.
Normally, you use link2rcs when constructing a development directory
based on an existing source tree. To copy an entire tree, change your
shell's working directory to the source directory (i.e., using the "cd"
command) and type
link2rcs -d dst_dir .
where dst_dir is the name of the (existing) directory under which you
wish to create the template directory, and the "." specifies the
current working directory. If you wish to copy only some of the
directories, type their names instead of ".".
Link2rcs makes a list of all directories under the source directory and
attempts to create a corresponding template under the destination
directory. Each time it finds a directory named "RCS" it makes a
symbolic link; otherwise it makes directories to match those in the
source tree.
If any of the names which link2rcs plans to create already exists, it
halts with an error message (unless "-m" is specified).
When you have created the template tree, you may use rcsget to check-
out files into the destination tree.
Link2rcs is written in C and runs in a POSIX environment.
It uses the DED_CM_LOOKUP variable (see ded(1)) to decide whether to
create a symbolic link or actual directory for CVS, RCS and SCCS. By
default, linkrcs creates links for RCS and SCCS directories. But if
DEC_CM_LOOKUP is set, link2rcs creates links only if those features are
listed in the environment variable.
Link2rcs consists of a single binary file, link2rcs.
None.
Thomas E. Dickey <dickey@invisible-island.net>
ded, baseline, rcsget, checkout, permit, rcs(1)
2025-09-28 LINK2RCS(1)