home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
VRAC
/
RCSDOC.ZIP
/
CO.TXT
< prev
next >
Wrap
Text File
|
1993-08-09
|
20KB
|
391 lines
CO(1) Unix Programmer's Manual CO(1)
NNNAAAMMMEEE
co - check out RCS revisions
SSSYYYNNNOOOPPPSSSIIISSS
cccooo [_o_p_t_i_o_n_s] _f_i_l_e ...
DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN
cccooo retrieves a revision from each RCS file and stores it into the
corresponding working file. Each file name ending in ,,,vvv is taken to be
an RCS file; all other files are assumed to be working files. If only a
working file is given, cccooo tries to find the corresponding RCS file in the
directory ...///RRRCCCSSS and then in the current directory. For more details, see
FILE NAMING below.
Revisions of an RCS file may be checked out locked or unlocked. Locking
a revision prevents overlapping updates. A revision checked out for
reading or processing (e.g., compiling) need not be locked. A revision
checked out for editing and later checkin must normally be locked.
Checkout with locking fails if the revision to be checked out is
currently locked by another user. (A lock may be broken with rrrcccsss(1).)\
Checkout with locking also requires the caller to be on the access list
of the RCS file, unless he is the owner of the file or the superuser, or
the access list is empty. Checkout without locking is not subject to
accesslist restrictions, and is not affected by the presence of locks.
A revision is selected by options for revision or branch number, checkin
date/time, author, or state. When the selection options are applied in
combination, cccooo retrieves the latest revision that satisfies all of them.
If none of the selection options is specified, cccooo retrieves the latest
revision on the default branch (normally the trunk, see the ---bbb option of
rrrcccsss(1)). A revision or branch number may be attached to any of the
options ---fff, ---III, ---lll, ---ppp, ---qqq, ---rrr, or ---uuu. The options ---ddd (date), ---sss
(state), and ---www (author) retrieve from a single branch, the _s_e_l_e_c_t_e_d
branch, which is either specified by one of ---fff,,, ..., ---uuu, or the default
branch.
A cccooo command applied to an RCS file with no revisions creates a zero-
length working file. cccooo always performs keyword substitution (see
below).
OOOPPPTTTIIIOOONNNSSS
---rrr[rev]]]
retrieves the latest revision whose number is less than or equal to
_r_e_v. If _r_e_v indicates a branch rather than a revision, the latest
revision on that branch is retrieved. If _r_e_v is omitted, the latest
revision on the default branch (see the ---bbb option of rrrcccsss(1)) is
retrieved. A revision is composed of one or more numeric or
symbolic fields separated by periods. The numeric equivalent of a
symbolic field is specified with the ---nnn option of the commands ccciii(1)
and rrrcccsss(1).
---lll[rev]]]
same as ---rrr, except that it also locks the retrieved revision for the
caller.
\*(Dt 1
CO(1) Unix Programmer's Manual CO(1)
---uuu[rev]]]
same as ---rrr, except that it unlocks the retrieved revision if it was
locked by the caller. If _r_e_v is omitted, ---uuu retrieves the latest
revision locked by the caller; if no such lock exists, it retrieves
the latest revision on the default branch.
---fff[rev]]]
forces the overwriting of the working file; useful in connection
with ---qqq. See also FILE MODES below.
---kkkkkkvvv Generate keyword strings using the default form, e.g. $$$RRReeevvviiisssiiiooonnn::: 555...444
$$$ for the RRReeevvviiisssiiiooonnn keyword. A locker's name is inserted in the
value of the HHHeeeaaadddeeerrr, IIIddd, and LLLoooccckkkeeerrr keyword strings only as a file
is being locked, i.e. by ccciii\\\ ---lll and cccooo\\\ ---lll. This is the default.
---kkkkkkvvvlll
Like ---kkkkkkvvv, except that a locker's name is always inserted if the
given revision is currently locked.
---kkkkkk Generate only keyword names in keyword strings; omit their values.
See KEYWORD SUBSTITUTION below. For example, for the RRReeevvviiisssiiiooonnn
keyword, generate the string $$$RRReeevvviiisssiiiooonnn$$$ instead of $$$RRReeevvviiisssiiiooonnn::: 555...444 $$$.
This option is useful to ignore differences due to keyword
substitution when comparing different revisions of a file.
---kkkooo Generate the old keyword string, present in the working file just
before it was checked in. For example, for the RRReeevvviiisssiiiooonnn keyword,
generate the string $$$RRReeevvviiisssiiiooonnn::: 111...111 $$$ instead of $$$RRReeevvviiisssiiiooonnn::: 555...444 $$$ if
that is how the string appeared when the file was checked in. This
can be useful for binary file formats that cannot tolerate any
changes to substrings that happen to take the form of keyword
strings.
---kkkvvv Generate only keyword values for keyword strings. For example, for
the RRReeevvviiisssiiiooonnn keyword, generate the string 555...444 instead of $$$RRReeevvviiisssiiiooonnn:::
555...444 $$$. This can help generate files in programming languages where
it is hard to strip keyword delimiters like $$$RRReeevvviiisssiiiooonnn:::\\\ $$$ from a
string. However, further keyword substitution cannot be performed
once the keyword names are removed, so this option should be used
with care. Because of this danger of losing keywords, this option
cannot be combined with ---lll, and the owner write permission of the
working file is turned off; to edit the file later, check it out
again without ---kkkvvv.
---ppp[rev]]]
prints the retrieved revision on the standard output rather than
storing it in the working file. This option is useful when cccooo is
part of a pipe.
---qqq[rev]]]
quiet mode; diagnostics are not printed.
---III[rev]]]
interactive mode; the user is prompted and questioned even if the
standard input is not a terminal.
\*(Dt 2
CO(1) Unix Programmer's Manual CO(1)
---ddd_d_a_t_e
retrieves the latest revision on the selected branch whose checkin
date/time is less than or equal to _d_a_t_e. The date and time may be
given in free format. The time zone LLLTTT stands for local time; other
common time zone names are understood. For example, the following
_d_a_t_es are equivalent if local time is January 11, 1990, 8pm Pacific
Standard Time (eight hours west of GMT):
8:00 pm lt
4:00 AM, Jan. 12, 1990 note: default is GMT
1990/01/12 04:00:00 RCS date format
Thu Jan 11 20:00:00 1990 LT output of ctime(3) + LT
Thu Jan 11 20:00:00 PST 1990 output of date(1)
Fri Jan 12 04:00:00 GMT 1990
Thu, 11 Jan 1990 20:00:00 -0800
Fri-JST, 1990, 1pm Jan 12
12-January-1990, 04:00-WET
Most fields in the date and time may be defaulted. The default time zone
is GMT. The other defaults are determined in the order year, month, day,
hour, minute, and second (most to least significant). At least one of
these fields must be provided. For omitted fields that are of higher
significance than the highest provided field, the time zone's current
values are assumed. For all other omitted fields, the lowest possible
values are assumed. For example, the date 222000,,, 111000:::333000 defaults to 10:30:00
GMT of the 20th of the GMT time zone's current month and year. The
date/time must be quoted if it contains spaces.
---sss_s_t_a_t_e
retrieves the latest revision on the selected branch whose state is
set to _s_t_a_t_e.
---www[login]]]
retrieves the latest revision on the selected branch which was
checked in by the user with login name _l_o_g_i_n. If the argument _l_o_g_i_n
is omitted, the caller's login is assumed.
---jjj_j_o_i_n_l_i_s_t
generates a new revision which is the join of the revisions on
_j_o_i_n_l_i_s_t. This option is largely obsoleted by rrrcccsssmmmeeerrrgggeee(1) but is
retained for backwards compatibility.
The _j_o_i_n_l_i_s_t is a comma-separated list of pairs of the form _r_e_v_2:::_r_e_v_3,
where _r_e_v_2 and _r_e_v_3 are (symbolic or numeric) revision numbers. For the
initial such pair, _r_e_v_1 denotes the revision selected by the above
options ---fff,,, ..., ---www. For all other pairs, _r_e_v_1 denotes the revision
generated by the previous pair. (Thus, the output of one join becomes
the input to the next.)
For each pair, cccooo joins revisions _r_e_v_1 and _r_e_v_3 with respect to _r_e_v_2.
This means that all changes that transform _r_e_v_2 into _r_e_v_1 are applied to
a copy of _r_e_v_3. This is particularly useful if _r_e_v_1 and _r_e_v_3 are the ends
of two branches that have _r_e_v_2 as a common ancestor. If _r_e_v_1<_r_e_v_2<_r_e_v_3
on the same branch, joining generates a new revision which is like _r_e_v_3,
but with all changes that lead from _r_e_v_1 to _r_e_v_2 undone. If changes from
_r_e_v_2 to _r_e_v_1 overlap with changes from _r_e_v_2 to _r_e_v_3, cccooo prints a warning
\*(Dt 3
CO(1) Unix Programmer's Manual CO(1)
and includes the overlapping sections, delimited by the lines <<<<<<<<<<<<<<<<<<<<<\
_r_e_v_1, =====================, and >>>>>>>>>>>>>>>>>>>>>\ _r_e_v_3.
For the initial pair, _r_e_v_2 may be omitted. The default is the common
ancestor. If any of the arguments indicate branches, the latest
revisions on those branches are assumed. The options ---lll and ---uuu lock or
unlock _r_e_v_1.
---VVV_n Emulate RCS version _n, where _n may be 333, 444, or 555. This may be
useful when interchanging RCS files with others who are running
older versions of RCS. To see which version of RCS your
correspondents are running, have them invoke rrrllloooggg on an RCS file; if
none of the first few lines of output contain the string bbbrrraaannnccchhh::: it
is version 3; if the dates' years have just two digits, it is
version 4; otherwise, it is version 5. An RCS file generated while
emulating version 3 will lose its default branch. An RCS revision
generated while emulating version 4 or earlier will have a timestamp
that is off by up to 13 hours. A revision extracted while emulating
version 4 or earlier will contain dates of the form _y_y///_m_m///_d_d instead
of _y_y_y_y///_m_m///_d_d and may also contain different white space in the
substitution for $$$LLLoooggg$$$.
KKKEEEYYYWWWOOORRRDDD SSSUUUBBBSSSTTTIIITTTUUUTTTIIIOOONNN
Strings of the form $$$_k_e_y_w_o_r_d$$$ and $$$_k_e_y_w_o_r_d:::...$$$ embedded in the text are
replaced with strings of the form $$$_k_e_y_w_o_r_d:::_v_a_l_u_e$$$ where _k_e_y_w_o_r_d and _v_a_l_u_e
are pairs listed below. Keywords may be embedded in literal strings or
comments to identify a revision.
Initially, the user enters strings of the form $$$_k_e_y_w_o_r_d$$$. On checkout,
cccooo replaces these strings with strings of the form $$$_k_e_y_w_o_r_d:::_v_a_l_u_e$$$. If a
revision containing strings of the latter form is checked back in, the
value fields will be replaced during the next checkout. Thus, the
keyword values are automatically updated on checkout. This automatic
substitution can be modified by the ---kkk options.
Keywords and their corresponding values:
$$$AAAuuuttthhhooorrr$$$
The login name of the user who checked in the revision.
$$$DDDaaattteee$$$
The date and time (GMT) the revision was checked in.
$$$HHHeeeaaadddeeerrr$$$
A standard header containing the full pathname of the RCS file, the
revision number, the date (GMT), the author, the state, and the
locker (if locked).
$$$IIIddd$$$ Same as $$$HHHeeeaaadddeeerrr$$$, except that the RCS file name is without a path.
$$$LLLoooccckkkeeerrr$$$
The login name of the user who locked the revision (empty if not
locked).
\*(Dt 4
CO(1) Unix Programmer's Manual CO(1)
$$$LLLoooggg$$$
The log message supplied during checkin, preceded by a header
containing the RCS file name, the revision number, the author, and
the date (GMT). Existing log messages are _n_o_t replaced. Instead,
the new log message is inserted after $$$LLLoooggg:::...$$$. This is useful for
accumulating a complete change log in a source file.
$$$RRRCCCSSSfffiiillleee$$$
The name of the RCS file without a path.
$$$RRReeevvviiisssiiiooonnn$$$
The revision number assigned to the revision.
$$$SSSooouuurrrccceee$$$
The full pathname of the RCS file.
$$$SSStttaaattteee$$$
The state assigned to the revision with the ---sss option of rrrcccsss(1) or
ccciii(1).
FFFIIILLLEEE NNNAAAMMMIIINNNGGG
Pairs of RCS files and working files may be specified in three ways (see
also the example section).
1) Both the RCS file and the working file are given. The RCS file name
is of the form _p_a_t_h_1///_w_o_r_k_f_i_l_e,,,vvv and the working file name is of the form
_p_a_t_h_2///_w_o_r_k_f_i_l_e where _p_a_t_h_1/// and _p_a_t_h_2/// are (possibly different or empty)
paths and _w_o_r_k_f_i_l_e is a file name.
2) Only the RCS file is given. Then the working file is created in the
current directory and its name is derived from the name of the RCS file
by removing _p_a_t_h_1/// and the suffix ,,,vvv.
3) Only the working file is given. Then cccooo looks for an RCS file of the
form _p_a_t_h_2///RRRCCCSSS///_w_o_r_k_f_i_l_e,,,vvv or _p_a_t_h_2///_w_o_r_k_f_i_l_e,,,vvv (in this order).
If the RCS file is specified without a path in 1) and 2), then cccooo looks
for the RCS file first in the directory ...///RRRCCCSSS and then in the current
directory.
EEEXXXAAAMMMPPPLLLEEESSS
Suppose the current directory contains a subdirectory RRRCCCSSS with an RCS
file iiiooo...ccc,,,vvv. Then all of the following commands retrieve the latest
revision from RRRCCCSSS///iiiooo...ccc,,,vvv and store it into iiiooo...ccc.
co io.c; co RCS/io.c,v; co io.c,v;
co io.c RCS/io.c,v; co io.c io.c,v;
co RCS/io.c,v io.c; co io.c,v io.c;
FFFIIILLLEEE MMMOOODDDEEESSS
The working file inherits the read and execute permissions from the RCS
file. In addition, the owner write permission is turned on, unless ---kkkvvv
is set or the file is checked out unlocked and locking is set to strict
(see rrrcccsss(1)).
\*(Dt 5
CO(1) Unix Programmer's Manual CO(1)
If a file with the name of the working file exists already and has write
permission, cccooo aborts the checkout, asking beforehand if possible. If
the existing working file is not writable or ---fff is given, the working
file is deleted without asking.
FFFIIILLLEEESSS
cccooo accesses files much as ccciii(1) does, except that it does not need to
read the working file.
DDDIIIAAAGGGNNNOOOSSSTTTIIICCCSSS
The RCS file name, the working file name, and the revision number
retrieved are written to the diagnostic output. The exit status is zero
if and only if all operations were successful.
IIIDDDEEENNNTTTIIIFFFIIICCCAAATTTIIIOOONNN
Author: Walter F. Tichy.
Revision Number: 5.4; Release Date: 1990/12/04.
Copyright (c) 1982, 1988, 1989 by Walter F. Tichy.
Copyright (c) 1990 by Paul Eggert.
SSSEEEEEE AAALLLSSSOOO
ci(1), ctime(3), date(1), ident(1), rcs(1), rcsdiff(1), rcsintro(1),
rcsmerge(1), rlog(1), rcsfile(5)
Walter F. Tichy, RCS--A System for Version Control, _S_o_f_t_w_a_r_e--_P_r_a_c_t_i_c_e &
_E_x_p_e_r_i_e_n_c_e 111555, 7 (July 1985), 637-654.
LLLIIIMMMIIITTTSSS
Links to the RCS and working files are not preserved.
There is no way to selectively suppress the expansion of keywords, except
by writing them differently. In nroff and troff, this is done by
embedding the null-character \\\&&& into the keyword.
BBBUUUGGGSSS
The ---ddd option sometimes gets confused, and accepts no date before 1970.
\*(Dt 6