Annotation of 43BSDReno/contrib/rcs/man/co.1, revision 1.1.1.1

1.1       root        1: .TH CO 1L "" "Purdue University"
                      2: .SH NAME
                      3: co \- check out RCS revisions
                      4: .SH SYNOPSIS
                      5: .B co
                      6: [ options ]
                      7: file ...
                      8: .SH DESCRIPTION
                      9: .I Co
                     10: retrieves a revision from each RCS file and stores it into
                     11: the corresponding working file.
                     12: Each file name ending in `,v' is taken to be an RCS file;
                     13: all other files are assumed to be working files.
                     14: If only a working file is given, \fIco\fR tries to find the corresponding
                     15: RCS file in the directory ./RCS and then in the current directory.
                     16: For more details, see the file naming section below.
                     17: .PP
                     18: Revisions of an RCS file may be checked out locked or unlocked. Locking a
                     19: revision prevents overlapping updates. A revision checked out for reading or
                     20: processing (e.g., compiling) need not be locked. A revision checked out
                     21: for editing and later checkin must normally be locked. \fICo\fR with locking
                     22: fails if the revision to be checked out is currently locked by another user.
                     23: (A lock may be broken with the
                     24: .IR rcs (1L)
                     25: command.)
                     26: \fICo\fR with locking also requires the caller to be on the access list of
                     27: the RCS file, unless he is the owner of the
                     28: file or the superuser, or the access list is empty.
                     29: \fICo\fR without locking is not subject to accesslist restrictions, and is
                     30: not affected by the presence of locks.
                     31: .PP
                     32: A revision is selected by options for revision or branch number,
                     33: checkin date/time, author, or state.
                     34: When the selection options
                     35: are applied in combination, \fIco\fR retrieves the latest revision
                     36: that satisfies all of them.
                     37: If none of the selection options
                     38: is specified, \fIco\fR retrieves the latest revision
                     39: on the default branch (normally the trunk, see the
                     40: .B \-b
                     41: option of
                     42: .IR rcs (1L)).
                     43: A revision or branch number may be attached
                     44: to any of the options
                     45: \fB\-f\fR, \fB\-l\fR, \fB\-p\fR, \fB\-q\fR, \fB\-r\fR, or \fB\-u\fR.
                     46: The options \fB\-d\fR (date), \fB\-s\fR (state), and \fB\-w\fR (author)
                     47: retrieve from a single branch, the \fIselected\fR branch,
                     48: which is either specified by one of
                     49: \fB\-f\fR,..., \fB\-u\fR, or the default branch.
                     50: .PP
                     51: A \fIco\fR command applied to an RCS
                     52: file with no revisions creates a zero-length working file.
                     53: \fICo\fR always performs keyword substitution (see below).
                     54: .PP
                     55: .TP 11
                     56: .BR \-r [\fIrev\fR]
                     57: retrieves the latest revision whose number is less than or equal to \fIrev\fR.
                     58: If \fIrev\fR indicates a branch rather than a revision,
                     59: the latest revision on that branch is retrieved.
                     60: If \fIrev\fR is omitted, the latest revision on the default branch
                     61: (see the
                     62: .B \-b
                     63: option of
                     64: .IR rcs (1L))
                     65: is retrieved.
                     66: \fIRev\fR is composed of one or more numeric or symbolic fields
                     67: separated by `.'. The numeric equivalent of a symbolic field
                     68: is specified with the \fB\-n\fR option of the commands
                     69: .IR ci (1L)
                     70: and
                     71: .IR rcs (1L).
                     72: .TP 11
                     73: .BR \-l [\fIrev\fR]
                     74: same as \fB\-r\fR, except that it also locks the retrieved revision for
                     75: the caller.  See option \fB\-r\fR for handling of the revision number
                     76: .I rev .
                     77: .TP 11
                     78: .BR \-u [\fIrev\fR]
                     79: same as \fB\-r\fR, except that it unlocks the retrieved revision (if it was
                     80: locked by the caller). If \fIrev\fR is omitted, \fB\-u\fR
                     81: retrieves the latest revision locked by the caller; if no such lock exists,
                     82: it retrieves the latest revision on the default branch.
                     83: .TP 11
                     84: .BR \-f [\fIrev\fR]
                     85: forces the overwriting of the working file;
                     86: useful in connection with \fB\-q\fR.
                     87: See also the section on file modes below.
                     88: .TP 11
                     89: .BR \-p [\fIrev\fR]
                     90: prints the retrieved revision on the standard output rather than storing it
                     91: in the working file.
                     92: This option is useful when \fIco\fR
                     93: is part of a pipe.
                     94: .TP 11
                     95: .BR \-q [\fIrev\fR]
                     96: quiet mode; diagnostics are not printed.
                     97: .TP 11
                     98: .BI \-d "date"
                     99: retrieves the latest revision on the selected branch whose checkin date/time is less than or equal to \fIdate\fR.
                    100: The date and time may be given in free format and are converted to local time.
                    101: Examples of formats for \fIdate\fR:
                    102: .ne 5
                    103: .nf
                    104: 
                    105: \fI22-April-1982, 17:20-CDT,
                    106: 2:25 AM, Dec. 29, 1983,
                    107: Tue-PDT, 1981, 4pm Jul 21\fR         \fR(free format),
                    108: \fIFri, April 16 15:52:25 EST 1982 \fR(output of ctime).
                    109: .fi
                    110: 
                    111: Most fields in the date and time may be defaulted.
                    112: \fICo\fR determines the defaults in the order year, month, day,
                    113: hour, minute, and second (most to least significant). At least one of these
                    114: fields must be provided. For omitted fields that are of higher significance
                    115: than the highest provided field,
                    116: the current values are assumed. For all other omitted fields,
                    117: the lowest possible values are assumed.
                    118: For example, the date "20, 10:30" defaults to
                    119: 10:30:00 of the 20th of the current month and current year.
                    120: The date/time must be quoted if it contains spaces.
                    121: .TP 11
                    122: .BI \-s "state"
                    123: retrieves the latest revision on the selected branch whose state is set to \fIstate\fR.
                    124: .TP 11
                    125: .BR \-w [\fIlogin\fR]
                    126: retrieves the latest revision on the selected branch which was checked in
                    127: by the user with login name \fIlogin\fR. If the argument \fIlogin\fR is
                    128: omitted, the caller's login is assumed.
                    129: .TP 11
                    130: .BI \-j joinlist
                    131: generates a new revision which is the join of the revisions on \fIjoinlist\fR.
                    132: \fIJoinlist\fR is a comma-separated list of pairs of the form
                    133: \fIrev2:rev3\fR, where \fIrev2\fR and \fIrev3\fR are (symbolic or numeric)
                    134: revision numbers.
                    135: For the initial such pair, \fIrev1\fR denotes the revision selected
                    136: by the above options \fB\-r\fR, ..., \fB\-w\fR. For all other pairs, \fIrev1\fR
                    137: denotes the revision generated by the previous pair. (Thus, the output
                    138: of one join becomes the input to the next.)
                    139: 
                    140: For each pair, \fIco\fR joins revisions \fIrev1\fR and \fIrev3\fR
                    141: with respect to \fIrev2\fR.
                    142: This means that all changes that transform
                    143: \fIrev2\fR into \fIrev1\fR are applied to a copy of \fIrev3\fR.
                    144: This is particularly useful if \fIrev1\fR
                    145: and \fIrev3\fR are the ends of two branches that have \fIrev2\fR as a common
                    146: ancestor. If \fIrev1\fR < \fIrev2\fR < \fIrev3\fR on the same branch,
                    147: joining generates a new revision which is like \fIrev3\fR, but with all
                    148: changes that lead from \fIrev1\fR to \fIrev2\fR undone.
                    149: If changes from \fIrev2\fR to \fIrev1\fR overlap with changes from
                    150: \fIrev2\fR to \fIrev3\fR, \fIco\fR prints a warning and includes the
                    151: overlapping sections, delimited by the lines \fI<<<<<<<\ rev1,
                    152: =======\fR, and \fI>>>>>>>\ rev3\fR.
                    153: 
                    154: For the initial pair, \fIrev2\fR may be omitted. The default is the common
                    155: ancestor.
                    156: If any of the arguments indicate branches, the latest revisions
                    157: on those branches are assumed.
                    158: The options \fB\-l\fR and \fB\-u\fR lock or unlock \fIrev1\fR.
                    159: .SH "KEYWORD SUBSTITUTION"
                    160: Strings of the form \fI$keyword$\fR and \fI$keyword:...$\fR embedded in
                    161: the text are replaced
                    162: with strings of the form \fI$keyword:\ value\ $\fR,
                    163: where \fIkeyword\fR and \fIvalue\fR are pairs listed below.
                    164: Keywords may be embedded in literal strings
                    165: or comments to identify a revision.
                    166: .PP
                    167: Initially, the user enters strings of the form \fI$keyword$\fR.
                    168: On checkout, \fIco\fR replaces these strings with strings of the form
                    169: \fI$keyword:\ value\ $\fR. If a revision containing strings of the latter form
                    170: is checked back in, the value fields will be replaced during the next
                    171: checkout.
                    172: Thus, the keyword values are automatically updated on checkout.
                    173: .PP
                    174: Keywords and their corresponding values:
                    175: .TP 13
                    176: $\&Author$
                    177: The login name of the user who checked in the revision.
                    178: .TP
                    179: $\&Date$
                    180: The date and time the revision was checked in.
                    181: .TP
                    182: $\&Header$
                    183: A standard header containing the full pathname of the RCS file, the
                    184: revision number, the date, the author, the state, and the locker (if locked).
                    185: .TP
                    186: $\&Id$
                    187: Same as $\&Header$, except that the RCS file name is without a path.
                    188: .TP
                    189: $\&Locker$
                    190: The login name of the user who locked the revision (empty if not locked).
                    191: .TP
                    192: $\&Log$
                    193: The log message supplied during checkin, preceded by a header
                    194: containing the RCS file name, the revision number, the author, and the date.
                    195: Existing log messages are NOT replaced.
                    196: Instead, the new log message is inserted after \fI$\&Log:...$\fR.
                    197: This is useful for
                    198: accumulating a complete change log in a source file.
                    199: .TP
                    200: $\&RCSfile$
                    201: The name of the RCS file without path.
                    202: .TP
                    203: $\&Revision$
                    204: The revision number assigned to the revision.
                    205: .TP
                    206: $\&Source$
                    207: The full pathname of the RCS file.
                    208: .TP
                    209: $\&State$
                    210: The state assigned to the revision with the
                    211: .B \-s
                    212: option of
                    213: .IR rcs (1L)
                    214: or
                    215: .IR ci (1L).
                    216: .TP
                    217: .SH "FILE NAMING"
                    218: Pairs of RCS files and working files may be specified in 3 ways (see also the
                    219: example section).
                    220: .PP
                    221: 1) Both the RCS file and the working file are given. The RCS file name is of
                    222: the form \fIpath1/workfile,v\fR
                    223: and the working file name is of the form
                    224: \fIpath2/workfile\fR, where
                    225: \fIpath1/\fR and
                    226: \fIpath2/\fR are (possibly different or empty) paths and
                    227: \fIworkfile\fR is a file name.
                    228: .PP
                    229: 2) Only the RCS file is given. Then the working file is created in the current
                    230: directory and its name is derived from the name of the RCS file
                    231: by removing \fIpath1/\fR and the suffix \fI,v\fR.
                    232: .PP
                    233: 3) Only the working file is given.
                    234: Then \fIco\fR looks for an RCS file of the form
                    235: \fIpath2/RCS/workfile,v\fR or \fIpath2/workfile,v\fR (in this order).
                    236: .PP
                    237: If the RCS file is specified without a path in 1) and 2), then \fIco\fR
                    238: looks for the RCS file first in the directory ./RCS and then in the current
                    239: directory.
                    240: .SH EXAMPLES
                    241: Suppose the current directory contains a subdirectory `RCS' with an RCS file
                    242: `io.c,v'. Then all of the following commands retrieve the latest
                    243: revision from `RCS/io.c,v' and store it into `io.c'.
                    244: .nf
                    245: .sp
                    246:        co  io.c;    co  RCS/io.c,v;   co  io.c,v;
                    247:        co  io.c  RCS/io.c,v;    co  io.c  io.c,v;
                    248:        co  RCS/io.c,v  io.c;    co  io.c,v  io.c;
                    249: .fi
                    250: .SH "FILE MODES"
                    251: The working file inherits the read and execute permissions from the RCS
                    252: file. In addition, the owner write permission is turned on, unless the file
                    253: is checked out unlocked and locking is set to \fIstrict\fR (see
                    254: .IR rcs (1L)).
                    255: .PP
                    256: If a file with the name of the working file exists already and has write
                    257: permission, \fIco\fR aborts the checkout if \fB\-q\fR is given, or asks
                    258: whether to abort if \fB\-q\fR is not given. If the existing working file is
                    259: not writable or \fB\-f\fR is given, the working file is deleted without asking.
                    260: .SH FILES
                    261: The caller of the command must have write permission in the working
                    262: directory, read permission for the RCS file, and either read permission
                    263: (for reading) or read/write permission (for locking) in the directory which
                    264: contains the RCS file.
                    265: .PP
                    266: A number of temporary files are created.
                    267: A semaphore file is created in the directory of the RCS file
                    268: to prevent simultaneous update.
                    269: .SH DIAGNOSTICS
                    270: The RCS file name, the working file name,
                    271: and the revision number retrieved are
                    272: written to the diagnostic output.
                    273: The exit status always refers to the last file checked out,
                    274: and is 0 if the operation was successful, 1 otherwise.
                    275: .SH IDENTIFICATION
                    276: .de VL
                    277: \\$2
                    278: ..
                    279: Author: Walter F. Tichy,
                    280: Purdue University, West Lafayette, IN, 47907.
                    281: .sp 0
                    282: Revision Number:
                    283: .VL $Revision: 1.4 $
                    284: ; Release Date:
                    285: .VL $Date: 89/05/02 11:20:22 $
                    286: \&.
                    287: .sp 0
                    288: Copyright \(co 1982, 1988, 1989 by Walter F. Tichy.
                    289: .SH SEE ALSO
                    290: ci(1L), ident(1L), rcs(1L), rcsdiff(1L), rcsintro(1L), rcsmerge(1L), rlog(1L),
                    291: rcsfile(5L)
                    292: .sp 0
                    293: Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control
                    294: System," in \fIProceedings of the 6th International Conference on Software
                    295: Engineering\fR, IEEE, Tokyo, Sept. 1982.
                    296: .SH LIMITATIONS
                    297: The option \fB\-d\fR gets confused in some circumstances,
                    298: and accepts no date before 1970.
                    299: Links to the RCS and working files are not preserved.
                    300: There is no way to suppress the expansion of keywords, except
                    301: by writing them differently. In nroff and troff, this is done by embedding the
                    302: null-character `\\&' into the keyword.
                    303: .SH BUGS
                    304: The option \fB\-j\fR does not work for
                    305: files that contain lines with a single `.'.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.