4.3BSD-UWisc/man/catl/rcs.l




RCS(1)              UNIX Programmer's Manual               RCS(1)



NAME
     rcs - change RCS file attributes

SYNOPSIS
     rcs [ options ] file ...

DESCRIPTION
     _R_c_s creates new RCS files or changes attributes of existing
     ones.  An RCS file contains multiple revisions of text, an
     access list, a change log, descriptive text, and some con-
     trol attributes.  For _r_c_s to work, the caller's login name
     must be on the access list, except if the access list is
     empty, the caller is the owner of the file or the superuser,
     or the -i option is present.

     Files ending in `,v' are RCS files, all others are working
     files. If a working file is given, _r_c_s tries to find the
     corresponding RCS file first in directory ./RCS and then in
     the current directory, as explained in _c_o (1).

     -i         creates and initializes a new RCS file, but does
                not deposit any revision.  If the RCS file has no
                path prefix, _r_c_s tries to place it first into the
                subdirectory ./RCS, and then into the current
                directory.  If the RCS file already exists, an
                error message is printed.

     -a_l_o_g_i_n_s   appends the login names appearing in the comma-
                separated list _l_o_g_i_n_s to the access list of the
                RCS file.

     -A_o_l_d_f_i_l_e  appends the access list of _o_l_d_f_i_l_e to the access
                list of the RCS file.

     -e[_l_o_g_i_n_s] erases the login names appearing in the comma-
                separated list _l_o_g_i_n_s from the access list of the
                RCS file.  If _l_o_g_i_n_s is omitted, the entire
                access list is erased.

     -c_s_t_r_i_n_g   sets the comment leader to _s_t_r_i_n_g. The comment
                leader is printed before every log message line
                generated by the keyword $Log$  during checkout
                (see _c_o). This is useful for programming
                languages without multi-line comments. During _r_c_s
                -_i or initial _c_i, the comment leader is guessed
                from the suffix of the working file.

     -l[_r_e_v]    locks the revision with number _r_e_v.  If a branch
                is given, the latest revision on that branch is
                locked.  If _r_e_v is omitted, the latest revision
                on the trunk is locked.  Locking prevents over-
                lapping changes.  A lock is removed with _c_i or



Printed 1/10/87              6/29/83                            1






RCS(1)              UNIX Programmer's Manual               RCS(1)



                _r_c_s -_u (see below).

     -u[_r_e_v]    unlocks the revision with number _r_e_v.  If a
                branch is given, the latest revision on that
                branch is unlocked.  If _r_e_v is omitted, the
                latest lock held by the caller is removed.  Nor-
                mally, only the locker of a revision may unlock
                it.  Somebody else unlocking a revision breaks
                the lock. This causes a mail message to be sent
                to the original locker.  The message contains a
                commentary solicited from the breaker.  The com-
                mentary is terminated with a line containing a
                single `.' or control-D.

     -L         sets locking to _s_t_r_i_c_t. Strict locking means that
                the owner of an RCS file is not exempt from lock-
                ing for checkin.  This option should be used for
                files that are shared.

     -U         sets locking to non-strict. Non-strict locking
                means that the owner of a file need not lock a
                revision for checkin. This option should NOT be
                used for files that are shared.  The default (-L
                or -U) is determined by your system administra-
                tor.

     -n_n_a_m_e[:_r_e_v]
                associates the symbolic name _n_a_m_e with the branch
                or revision _r_e_v. _R_c_s prints an error message if
                _n_a_m_e is already associated with another number.
                If _r_e_v is omitted, the symbolic name is deleted.

     -N_n_a_m_e[:_r_e_v]
                same as -n, except that it overrides a previous
                assignment of _n_a_m_e.

     -o_r_a_n_g_e    deletes ("outdates") the revisions given by
                _r_a_n_g_e.  A range consisting of a single revision
                number means that revision.  A range consisting
                of a branch number means the latest revision on
                that branch.  A range of the form _r_e_v_1-_r_e_v_2 means
                revisions _r_e_v_1 to _r_e_v_2 on the same branch, -_r_e_v
                means from the beginning of the branch containing
                _r_e_v up to and including _r_e_v, and _r_e_v- means from
                revision _r_e_v to the end of the branch containing
                _r_e_v.  None of the outdated revisions may have
                branches or locks.

     -q         quiet mode; diagnostics are not printed.

     -s_s_t_a_t_e[:_r_e_v]
                sets the state attribute of the revision _r_e_v to



Printed 1/10/87              6/29/83                            2






RCS(1)              UNIX Programmer's Manual               RCS(1)



                _s_t_a_t_e. If _r_e_v is omitted, the latest revision on
                the trunk is assumed; If _r_e_v is a branch number,
                the latest revision on that branch is assumed.
                Any identifier is acceptable for _s_t_a_t_e.  A useful
                set of states is _E_x_p (for experimental), _S_t_a_b
                (for stable), and _R_e_l (for released).  By
                default, _c_i sets the state of a revision to _E_x_p.

     -t[_t_x_t_f_i_l_e]
                writes descriptive text into the RCS file
                (deletes the existing text).  If _t_x_t_f_i_l_e is omit-
                ted, _r_c_s prompts the user for text supplied from
                the std. input, terminated with a line containing
                a single `.' or control-D.  Otherwise, the
                descriptive text is copied from the file _t_x_t_f_i_l_e.
                If the -i option is present, descriptive text is
                requested even if -t is not given.  The prompt is
                suppressed if the std. input is not a terminal.

DIAGNOSTICS
     The RCS file name and the revisions outdated are written to
     the diagnostic output.  The exit status always refers to the
     last RCS file operated upon, and is 0 if the operation was
     successful, 1 otherwise.

FILES
     The caller of the command must have read/write permission
     for the directory containing the RCS file and read permis-
     sion for the RCS file itself.  _R_c_s creates a semaphore file
     in the same directory as the RCS file to prevent simultane-
     ous update.  For changes, _r_c_s always creates a new file. On
     successful completion, _r_c_s deletes the old one and renames
     the new one.  This strategy makes links to RCS files use-
     less.

IDENTIFICATION
     Author: Walter F. Tichy, Purdue University, West Lafayette,
     IN, 47907.
     Revision Number: 3.1 ; Release Date: 83/04/04 .
     Copyright 8c9 1982 by Walter F. Tichy.

SEE ALSO
     co (1), ci (1), ident(1), rcsdiff (1), rcsintro (1),
     rcsmerge (1), rlog (1), rcsfile (5), sccstorcs (8).
     Walter F. Tichy, "Design, Implementation, and Evaluation of
     a Revision Control System," in _P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e _6_t_h _I_n_t_e_r_-
     _n_a_t_i_o_n_a_l _C_o_n_f_e_r_e_n_c_e _o_n _S_o_f_t_w_a_r_e _E_n_g_i_n_e_e_r_i_n_g, IEEE, Tokyo,
     Sept. 1982.

BUGS


Printed 1/10/87              6/29/83                            3