1RCS(1) General Commands Manual RCS(1)
2
3
4
6 rcs - change RCS file attributes
7
9 rcs options file ...
10
12 rcs creates new RCS files or changes attributes of existing ones. An
13 RCS file contains multiple revisions of text, an access list, a change
14 log, descriptive text, and some control attributes. For rcs to work,
15 the caller's login name must be on the access list, except if the ac‐
16 cess list is empty, the caller is the owner of the file or the supe‐
17 ruser, or the -i option is present.
18
19 Filenames matching an RCS suffix denote RCS files; all others denote
20 working files. Names are paired as explained in ci(1). Revision num‐
21 bers use the syntax described in ci(1).
22
24 -i Create and initialize a new RCS file, but do not deposit any re‐
25 vision. If the RCS file name has no directory component, try to
26 place it first into the subdirectory ./RCS, and then into the
27 current directory. If the RCS file already exists, print an er‐
28 ror message.
29
30 -alogins
31 Append the login names appearing in the comma-separated list lo‐
32 gins to the access list of the RCS file.
33
34 -Aoldfile
35 Append the access list of oldfile to the access list of the RCS
36 file.
37
38 -e[logins]
39 Erase the login names appearing in the comma-separated list lo‐
40 gins from the access list of the RCS file. If logins is omit‐
41 ted, erase the entire access list.
42
43 -b[rev]
44 Set the default branch to rev. If rev is omitted, the default
45 branch is reset to the (dynamically) highest branch on the
46 trunk.
47
48 -cstring
49 Set the comment leader to string. An initial ci, or an rcs -i
50 without -c, guesses the comment leader from the suffix of the
51 working file name.
52
53 This option is obsolescent, since RCS normally uses the preced‐
54 ing $Log$ line's prefix when inserting log lines during checkout
55 (see co(1)). However, older versions of RCS use the comment
56 leader instead of the $Log$ line's prefix, so if you plan to ac‐
57 cess a file with both old and new versions of RCS, make sure its
58 comment leader matches its $Log$ line prefix.
59
60 -ksubst
61 Set the default keyword substitution to subst. The effect of
62 keyword substitution is described in co(1). Giving an explicit
63 -k option to co, rcsdiff, and rcsmerge overrides this default.
64 Beware rcs -kv, because -kv is incompatible with co -l. Use
65 rcs -kkv to restore the normal default keyword substitution.
66
67 -l[rev]
68 Lock the revision with number rev. If a branch is given, lock
69 the latest revision on that branch. If rev is omitted, lock the
70 latest revision on the default branch. Locking prevents over‐
71 lapping changes. If someone else already holds the lock, the
72 lock is broken as with rcs -u (see below).
73
74 -u[rev]
75 Unlock the revision with number rev. If a branch is given, un‐
76 lock the latest revision on that branch. If rev is omitted, re‐
77 move the latest lock held by the caller. Normally, only the
78 locker of a revision can unlock it. Somebody else unlocking a
79 revision breaks the lock. If RCS was configured --with-mailer,
80 then this causes a mail message to be sent to the original
81 locker. The message contains a commentary solicited from the
82 breaker. The commentary is terminated by end-of-file or by a
83 line containing . by itself.
84
85 -L Set locking to strict. Strict locking means that the owner of
86 an RCS file is not exempt from locking for checkin. This option
87 should be used for files that are shared.
88
89 -U Set locking to non-strict. Non-strict locking means that the
90 owner of a file need not lock a revision for checkin. This op‐
91 tion should not be used for files that are shared. Whether de‐
92 fault locking is strict is determined by your system administra‐
93 tor, but it is normally strict.
94
95 -mrev:[msg]
96 Replace revision rev's log message with msg. If msg is omitted,
97 it defaults to "*** empty log message ***".
98
99 -M Do not send mail when breaking somebody else's lock. This op‐
100 tion is not meant for casual use; it is meant for programs that
101 warn users by other means, and invoke rcs -u only as a low-level
102 lock-breaking operation.
103
104 -nname[:[rev]]
105 Associate the symbolic name name with the branch or revision
106 rev. Delete the symbolic name if both : and rev are omitted;
107 otherwise, print an error message if name is already associated
108 with another number. If rev is symbolic, it is expanded before
109 association. A rev consisting of a branch number followed by a
110 . stands for the current latest revision in the branch. A :
111 with an empty rev stands for the current latest revision on the
112 default branch, normally the trunk. For example,
113 rcs -nname: RCS/* associates name with the current latest revi‐
114 sion of all the named RCS files; this contrasts with
115 rcs -nname:$ RCS/* which associates name with the revision num‐
116 bers extracted from keyword strings in the corresponding working
117 files.
118
119 -Nname[:[rev]]
120 Act like -n, except override any previous assignment of name.
121
122 -orange
123 deletes (“outdates”) the revisions given by range. A range con‐
124 sisting of a single revision number means that revision. A
125 range consisting of a branch number means the latest revision on
126 that branch. A range of the form rev1:rev2 means revisions rev1
127 to rev2 on the same branch, :rev means from the beginning of the
128 branch containing rev up to and including rev, and rev: means
129 from revision rev to the end of the branch containing rev. None
130 of the outdated revisions can have branches or locks.
131
132 -q Run quietly; do not print diagnostics.
133
134 -I Run interactively, even if the standard input is not a terminal.
135
136 -sstate[:rev]
137 Set the state attribute of the revision rev to state. If rev is
138 a branch number, assume the latest revision on that branch. If
139 rev is omitted, assume the latest revision on the default
140 branch. Any identifier is acceptable for state. A useful set
141 of states is Exp (for experimental), Stab (for stable), and Rel
142 (for released). By default, ci(1) sets the state of a revision
143 to Exp.
144
145 -t[file]
146 Write descriptive text from the contents of the named file into
147 the RCS file, deleting the existing text. The file name cannot
148 begin with -. If file is omitted, obtain the text from standard
149 input, terminated by end-of-file or by a line containing . by
150 itself. Prompt for the text if interaction is possible; see -I.
151 With -i, descriptive text is obtained even if -t is not given.
152
153 -t-string
154 Write descriptive text from the string into the RCS file, delet‐
155 ing the existing text.
156
157 -T Preserve the modification time on the RCS file unless a revision
158 is removed. This option can suppress extensive recompilation
159 caused by a make(1) dependency of some copy of the working file
160 on the RCS file. Use this option with care; it can suppress re‐
161 compilation even when it is needed, i.e. when a change to the
162 RCS file would mean a change to keyword strings in the working
163 file.
164
165 -V Print RCS's version number.
166
167 -Vn Emulate RCS version n. See co(1) for details.
168
169 -xsuffixes
170 Use suffixes to characterize RCS files. See ci(1) for details.
171
172 -zzone Use zone as the default time zone. This option has no effect;
173 it is present for compatibility with other RCS commands.
174
175 At least one explicit option must be given, to ensure compatibility
176 with future planned extensions to the rcs command.
177
179 The -brev option generates an RCS file that cannot be parsed by RCS
180 version 3 or earlier.
181
182 The -ksubst options (except -kkv) generate an RCS file that cannot be
183 parsed by RCS version 4 or earlier.
184
185 Use rcs -Vn to make an RCS file acceptable to RCS version n by discard‐
186 ing information that would confuse version n.
187
188 RCS version 5.5 and earlier does not support the -x option, and re‐
189 quires a ,v suffix on an RCS file name.
190
192 rcs accesses files much as ci(1) does, except that it uses the effec‐
193 tive user for all accesses, it does not write the working file or its
194 directory, and it does not even read the working file unless a revision
195 number of $ is specified.
196
198 RCSINIT
199 Options prepended to the argument list, separated by spaces. A
200 backslash escapes spaces within an option. The RCSINIT options
201 are prepended to the argument lists of most RCS commands. Use‐
202 ful RCSINIT options include -q, -V, -x, and -z.
203
204 RCS_MEM_LIMIT
205 Normally, for speed, commands either memory map or copy into
206 memory the RCS file if its size is less than the memory-limit,
207 currently defaulting to ``unlimited''. Otherwise (or if the
208 initially-tried speedy ways fail), the commands fall back to us‐
209 ing standard i/o routines. You can adjust the memory limit by
210 setting RCS_MEM_LIMIT to a numeric value lim (measured in kilo‐
211 bytes). An empty value is silently ignored. As a side effect,
212 specifying RCS_MEM_LIMIT inhibits fall-back to slower routines.
213
214 TMPDIR Name of the temporary directory. If not set, the environment
215 variables TMP and TEMP are inspected instead and the first value
216 found is taken; if none of them are set, a host-dependent de‐
217 fault is used, typically /tmp.
218
220 The RCS file name and the revisions outdated are written to the diag‐
221 nostic output. The exit status is zero if and only if all operations
222 were successful.
223
225 Author: Walter F. Tichy.
226 Manual Page Revision: 5.10.1; Release Date: 2023-07-21.
227 Copyright © 2010-2022 Thien-Thi Nguyen.
228 Copyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.
229 Copyright © 1982, 1988, 1989 Walter F. Tichy.
230
232 co(1), ci(1), ident(1), rcsclean(1), rcsdiff(1), rcsmerge(1), rlog(1),
233 rcsfile(5).
234
235 Walter F. Tichy, RCS--A System for Version Control, Software--Practice
236 & Experience 15, 7 (July 1985), 637-654.
237
238 The full documentation for RCS is maintained as a Texinfo manual. If
239 the info(1) and RCS programs are properly installed at your site, the
240 command
241
242 info rcs
243
244 should give you access to the complete manual. Additionally, the RCS
245 homepage:
246
247 http://www.gnu.org/software/rcs/
248
249 has news and links to the latest release, development site, etc.
250
252 A catastrophe (e.g. a system crash) can cause RCS to leave behind a
253 semaphore file that causes later invocations of RCS to claim that the
254 RCS file is in use. To fix this, remove the semaphore file. A sema‐
255 phore file's name typically begins with , or ends with _.
256
257 The separator for revision ranges in the -o option used to be - instead
258 of :, but this leads to confusion when symbolic names contain -. For
259 backwards compatibility rcs -o still supports the old - separator, but
260 it warns about this obsolete use.
261
262 Symbolic names need not refer to existing revisions or branches. For
263 example, the -o option does not remove symbolic names for the outdated
264 revisions; you must use -n to remove the names.
265
266
267
268GNU RCS 5.10.1 2023-07-21 RCS(1)