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 sym- bolic 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 origi- nal 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 cor- respond 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 spec- ified 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 abso- lute 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 cur- rent working directory. If you wish to copy only some of the directo- ries, 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 sym- bolic 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.
ded, baseline, rcsget, checkout, permit, rcs(1)
Thomas E. Dickey <email@example.com> LINK2RCS(1)