[9046] | 1 | .de Id |
---|
| 2 | .ds Rv \\$3 |
---|
| 3 | .ds Dt \\$4 |
---|
| 4 | .. |
---|
| 5 | .Id $Id: rcs.1,v 1.1.1.1 1996-10-04 05:52:42 ghudson Exp $ |
---|
| 6 | .ds r \&\s-1RCS\s0 |
---|
| 7 | .if n .ds - \%-- |
---|
| 8 | .if t .ds - \(em |
---|
| 9 | .if !\n(.g \{\ |
---|
| 10 | . if !\w|\*(lq| \{\ |
---|
| 11 | . ds lq `` |
---|
| 12 | . if \w'\(lq' .ds lq "\(lq |
---|
| 13 | . \} |
---|
| 14 | . if !\w|\*(rq| \{\ |
---|
| 15 | . ds rq '' |
---|
| 16 | . if \w'\(rq' .ds rq "\(rq |
---|
| 17 | . \} |
---|
| 18 | .\} |
---|
| 19 | .TH RCS 1 \*(Dt GNU |
---|
| 20 | .SH NAME |
---|
| 21 | rcs \- change RCS file attributes |
---|
| 22 | .SH SYNOPSIS |
---|
| 23 | .B rcs |
---|
| 24 | .IR "options file " .\|.\|. |
---|
| 25 | .SH DESCRIPTION |
---|
| 26 | .B rcs |
---|
| 27 | creates new \*r files or changes attributes of existing ones. |
---|
| 28 | An \*r file contains multiple revisions of text, |
---|
| 29 | an access list, a change log, |
---|
| 30 | descriptive text, |
---|
| 31 | and some control attributes. |
---|
| 32 | For |
---|
| 33 | .B rcs |
---|
| 34 | to work, the caller's login name must be on the access list, |
---|
| 35 | except if the access list is empty, the caller is the owner of the file |
---|
| 36 | or the superuser, or |
---|
| 37 | the |
---|
| 38 | .B \-i |
---|
| 39 | option is present. |
---|
| 40 | .PP |
---|
| 41 | Pathnames matching an \*r suffix denote \*r files; |
---|
| 42 | all others denote working files. |
---|
| 43 | Names are paired as explained in |
---|
| 44 | .BR ci (1). |
---|
| 45 | Revision numbers use the syntax described in |
---|
| 46 | .BR ci (1). |
---|
| 47 | .SH OPTIONS |
---|
| 48 | .TP |
---|
| 49 | .B \-i |
---|
| 50 | Create and initialize a new \*r file, but do not deposit any revision. |
---|
| 51 | If the \*r file has no path prefix, try to place it |
---|
| 52 | first into the subdirectory |
---|
| 53 | .BR ./RCS , |
---|
| 54 | and then into the current directory. |
---|
| 55 | If the \*r file |
---|
| 56 | already exists, print an error message. |
---|
| 57 | .TP |
---|
| 58 | .BI \-a "logins" |
---|
| 59 | Append the login names appearing in the comma-separated list |
---|
| 60 | .I logins |
---|
| 61 | to the access list of the \*r file. |
---|
| 62 | .TP |
---|
| 63 | .BI \-A "oldfile" |
---|
| 64 | Append the access list of |
---|
| 65 | .I oldfile |
---|
| 66 | to the access list of the \*r file. |
---|
| 67 | .TP |
---|
| 68 | .BR \-e [\f2logins\fP] |
---|
| 69 | Erase the login names appearing in the comma-separated list |
---|
| 70 | .I logins |
---|
| 71 | from the access list of the \*r file. |
---|
| 72 | If |
---|
| 73 | .I logins |
---|
| 74 | is omitted, erase the entire access list. |
---|
| 75 | .TP |
---|
| 76 | .BR \-b [\f2rev\fP] |
---|
| 77 | Set the default branch to |
---|
| 78 | .IR rev . |
---|
| 79 | If |
---|
| 80 | .I rev |
---|
| 81 | is omitted, the default |
---|
| 82 | branch is reset to the (dynamically) highest branch on the trunk. |
---|
| 83 | .TP |
---|
| 84 | .BI \-c string |
---|
| 85 | Set the comment leader to |
---|
| 86 | .IR string . |
---|
| 87 | An initial |
---|
| 88 | .BR ci , |
---|
| 89 | or an |
---|
| 90 | .B "rcs\ \-i" |
---|
| 91 | without |
---|
| 92 | .BR \-c , |
---|
| 93 | guesses the comment leader from the suffix of the working filename. |
---|
| 94 | .RS |
---|
| 95 | .PP |
---|
| 96 | This option is obsolescent, since \*r normally uses the preceding |
---|
| 97 | .B $\&Log$ |
---|
| 98 | line's prefix when inserting log lines during checkout (see |
---|
| 99 | .BR co (1)). |
---|
| 100 | However, older versions of \*r use the comment leader instead of the |
---|
| 101 | .B $\&Log$ |
---|
| 102 | line's prefix, so |
---|
| 103 | if you plan to access a file with both old and new versions of \*r, |
---|
| 104 | make sure its comment leader matches its |
---|
| 105 | .B $\&Log$ |
---|
| 106 | line prefix. |
---|
| 107 | .RE |
---|
| 108 | .TP |
---|
| 109 | .BI \-k subst |
---|
| 110 | Set the default keyword substitution to |
---|
| 111 | .IR subst . |
---|
| 112 | The effect of keyword substitution is described in |
---|
| 113 | .BR co (1). |
---|
| 114 | Giving an explicit |
---|
| 115 | .B \-k |
---|
| 116 | option to |
---|
| 117 | .BR co , |
---|
| 118 | .BR rcsdiff , |
---|
| 119 | and |
---|
| 120 | .B rcsmerge |
---|
| 121 | overrides this default. |
---|
| 122 | Beware |
---|
| 123 | .BR "rcs\ \-kv", |
---|
| 124 | because |
---|
| 125 | .B \-kv |
---|
| 126 | is incompatible with |
---|
| 127 | .BR "co\ \-l". |
---|
| 128 | Use |
---|
| 129 | .B "rcs\ \-kkv" |
---|
| 130 | to restore the normal default keyword substitution. |
---|
| 131 | .TP |
---|
| 132 | .BR \-l [\f2rev\fP] |
---|
| 133 | Lock the revision with number |
---|
| 134 | .IR rev . |
---|
| 135 | If a branch is given, lock the latest revision on that branch. |
---|
| 136 | If |
---|
| 137 | .I rev |
---|
| 138 | is omitted, lock the latest revision on the default branch. |
---|
| 139 | Locking prevents overlapping changes. |
---|
| 140 | If someone else already holds the lock, the lock is broken as with |
---|
| 141 | .B "rcs\ \-u" |
---|
| 142 | (see below). |
---|
| 143 | .TP |
---|
| 144 | .BR \-u [\f2rev\fP] |
---|
| 145 | Unlock the revision with number |
---|
| 146 | .IR rev . |
---|
| 147 | If a branch is given, unlock the latest revision on that branch. |
---|
| 148 | If |
---|
| 149 | .I rev |
---|
| 150 | is omitted, remove the latest lock held by the caller. |
---|
| 151 | Normally, only the locker of a revision can unlock it. |
---|
| 152 | Somebody else unlocking a revision breaks the lock. |
---|
| 153 | This causes a mail message to be sent to the original locker. |
---|
| 154 | The message contains a commentary solicited from the breaker. |
---|
| 155 | The commentary is terminated by end-of-file or by a line containing |
---|
| 156 | .BR \&. "\ by" |
---|
| 157 | itself. |
---|
| 158 | .TP |
---|
| 159 | .B \-L |
---|
| 160 | Set locking to |
---|
| 161 | .IR strict . |
---|
| 162 | Strict locking means that the owner |
---|
| 163 | of an \*r file is not exempt from locking for checkin. |
---|
| 164 | This option should be used for files that are shared. |
---|
| 165 | .TP |
---|
| 166 | .B \-U |
---|
| 167 | Set locking to non-strict. Non-strict locking means that the owner of |
---|
| 168 | a file need not lock a revision for checkin. |
---|
| 169 | This option should |
---|
| 170 | .I not |
---|
| 171 | be used for files that are shared. |
---|
| 172 | Whether default locking is strict is determined by your system administrator, |
---|
| 173 | but it is normally strict. |
---|
| 174 | .TP |
---|
| 175 | \f3\-m\fP\f2rev\fP\f3:\fP\f2msg\fP |
---|
| 176 | Replace revision |
---|
| 177 | .IR rev 's |
---|
| 178 | log message with |
---|
| 179 | .IR msg . |
---|
| 180 | .TP |
---|
| 181 | .B \-M |
---|
| 182 | Do not send mail when breaking somebody else's lock. |
---|
| 183 | This option is not meant for casual use; |
---|
| 184 | it is meant for programs that warn users by other means, and invoke |
---|
| 185 | .B "rcs\ \-u" |
---|
| 186 | only as a low-level lock-breaking operation. |
---|
| 187 | .TP |
---|
| 188 | \f3\-n\fP\f2name\fP[\f3:\fP[\f2rev\fP]] |
---|
| 189 | Associate the symbolic name |
---|
| 190 | .I name |
---|
| 191 | with the branch or |
---|
| 192 | revision |
---|
| 193 | .IR rev . |
---|
| 194 | Delete the symbolic name if both |
---|
| 195 | .B : |
---|
| 196 | and |
---|
| 197 | .I rev |
---|
| 198 | are omitted; otherwise, print an error message if |
---|
| 199 | .I name |
---|
| 200 | is already associated with |
---|
| 201 | another number. |
---|
| 202 | If |
---|
| 203 | .I rev |
---|
| 204 | is symbolic, it is expanded before association. |
---|
| 205 | A |
---|
| 206 | .I rev |
---|
| 207 | consisting of a branch number followed by a |
---|
| 208 | .B .\& |
---|
| 209 | stands for the current latest revision in the branch. |
---|
| 210 | A |
---|
| 211 | .B : |
---|
| 212 | with an empty |
---|
| 213 | .I rev |
---|
| 214 | stands for the current latest revision on the default branch, |
---|
| 215 | normally the trunk. |
---|
| 216 | For example, |
---|
| 217 | .BI "rcs\ \-n" name ":\ RCS/*" |
---|
| 218 | associates |
---|
| 219 | .I name |
---|
| 220 | with the current latest revision of all the named \*r files; |
---|
| 221 | this contrasts with |
---|
| 222 | .BI "rcs\ \-n" name ":$\ RCS/*" |
---|
| 223 | which associates |
---|
| 224 | .I name |
---|
| 225 | with the revision numbers extracted from keyword strings |
---|
| 226 | in the corresponding working files. |
---|
| 227 | .TP |
---|
| 228 | \f3\-N\fP\f2name\fP[\f3:\fP[\f2rev\fP]] |
---|
| 229 | Act like |
---|
| 230 | .BR \-n , |
---|
| 231 | except override any previous assignment of |
---|
| 232 | .IR name . |
---|
| 233 | .TP |
---|
| 234 | .BI \-o range |
---|
| 235 | deletes (\*(lqoutdates\*(rq) the revisions given by |
---|
| 236 | .IR range . |
---|
| 237 | A range consisting of a single revision number means that revision. |
---|
| 238 | A range consisting of a branch number means the latest revision on that |
---|
| 239 | branch. |
---|
| 240 | A range of the form |
---|
| 241 | .IB rev1 : rev2 |
---|
| 242 | means |
---|
| 243 | revisions |
---|
| 244 | .I rev1 |
---|
| 245 | to |
---|
| 246 | .I rev2 |
---|
| 247 | on the same branch, |
---|
| 248 | .BI : rev |
---|
| 249 | means from the beginning of the branch containing |
---|
| 250 | .I rev |
---|
| 251 | up to and including |
---|
| 252 | .IR rev , |
---|
| 253 | and |
---|
| 254 | .IB rev : |
---|
| 255 | means |
---|
| 256 | from revision |
---|
| 257 | .I rev |
---|
| 258 | to the end of the branch containing |
---|
| 259 | .IR rev . |
---|
| 260 | None of the outdated revisions can have branches or locks. |
---|
| 261 | .TP |
---|
| 262 | .B \-q |
---|
| 263 | Run quietly; do not print diagnostics. |
---|
| 264 | .TP |
---|
| 265 | .B \-I |
---|
| 266 | Run interactively, even if the standard input is not a terminal. |
---|
| 267 | .TP |
---|
| 268 | .B \-s\f2state\fP\f1[\fP:\f2rev\fP\f1]\fP |
---|
| 269 | Set the state attribute of the revision |
---|
| 270 | .I rev |
---|
| 271 | to |
---|
| 272 | .IR state . |
---|
| 273 | If |
---|
| 274 | .I rev |
---|
| 275 | is a branch number, assume the latest revision on that branch. |
---|
| 276 | If |
---|
| 277 | .I rev |
---|
| 278 | is omitted, assume the latest revision on the default branch. |
---|
| 279 | Any identifier is acceptable for |
---|
| 280 | .IR state . |
---|
| 281 | A useful set of states |
---|
| 282 | is |
---|
| 283 | .B Exp |
---|
| 284 | (for experimental), |
---|
| 285 | .B Stab |
---|
| 286 | (for stable), and |
---|
| 287 | .B Rel |
---|
| 288 | (for |
---|
| 289 | released). |
---|
| 290 | By default, |
---|
| 291 | .BR ci (1) |
---|
| 292 | sets the state of a revision to |
---|
| 293 | .BR Exp . |
---|
| 294 | .TP |
---|
| 295 | .BR \-t [\f2file\fP] |
---|
| 296 | Write descriptive text from the contents of the named |
---|
| 297 | .I file |
---|
| 298 | into the \*r file, deleting the existing text. |
---|
| 299 | The |
---|
| 300 | .IR file |
---|
| 301 | pathname cannot begin with |
---|
| 302 | .BR \- . |
---|
| 303 | If |
---|
| 304 | .I file |
---|
| 305 | is omitted, obtain the text from standard input, |
---|
| 306 | terminated by end-of-file or by a line containing |
---|
| 307 | .BR \&. "\ by" |
---|
| 308 | itself. |
---|
| 309 | Prompt for the text if interaction is possible; see |
---|
| 310 | .BR \-I . |
---|
| 311 | With |
---|
| 312 | .BR \-i , |
---|
| 313 | descriptive text is obtained |
---|
| 314 | even if |
---|
| 315 | .B \-t |
---|
| 316 | is not given. |
---|
| 317 | .TP |
---|
| 318 | .BI \-t\- string |
---|
| 319 | Write descriptive text from the |
---|
| 320 | .I string |
---|
| 321 | into the \*r file, deleting the existing text. |
---|
| 322 | .TP |
---|
| 323 | .B \-T |
---|
| 324 | Preserve the modification time on the \*r file |
---|
| 325 | unless a revision is removed. |
---|
| 326 | This option can suppress extensive recompilation caused by a |
---|
| 327 | .BR make (1) |
---|
| 328 | dependency of some copy of the working file on the \*r file. |
---|
| 329 | Use this option with care; it can suppress recompilation even when it is needed, |
---|
| 330 | i.e. when a change to the \*r file |
---|
| 331 | would mean a change to keyword strings in the working file. |
---|
| 332 | .TP |
---|
| 333 | .BI \-V |
---|
| 334 | Print \*r's version number. |
---|
| 335 | .TP |
---|
| 336 | .BI \-V n |
---|
| 337 | Emulate \*r version |
---|
| 338 | .IR n . |
---|
| 339 | See |
---|
| 340 | .BR co (1) |
---|
| 341 | for details. |
---|
| 342 | .TP |
---|
| 343 | .BI \-x "suffixes" |
---|
| 344 | Use |
---|
| 345 | .I suffixes |
---|
| 346 | to characterize \*r files. |
---|
| 347 | See |
---|
| 348 | .BR ci (1) |
---|
| 349 | for details. |
---|
| 350 | .TP |
---|
| 351 | .BI \-z zone |
---|
| 352 | Use |
---|
| 353 | .I zone |
---|
| 354 | as the default time zone. |
---|
| 355 | This option has no effect; |
---|
| 356 | it is present for compatibility with other \*r commands. |
---|
| 357 | .PP |
---|
| 358 | At least one explicit option must be given, |
---|
| 359 | to ensure compatibility with future planned extensions |
---|
| 360 | to the |
---|
| 361 | .B rcs |
---|
| 362 | command. |
---|
| 363 | .SH COMPATIBILITY |
---|
| 364 | The |
---|
| 365 | .BI \-b rev |
---|
| 366 | option generates an \*r file that cannot be parsed by \*r version 3 or earlier. |
---|
| 367 | .PP |
---|
| 368 | The |
---|
| 369 | .BI \-k subst |
---|
| 370 | options (except |
---|
| 371 | .BR \-kkv ) |
---|
| 372 | generate an \*r file that cannot be parsed by \*r version 4 or earlier. |
---|
| 373 | .PP |
---|
| 374 | Use |
---|
| 375 | .BI "rcs \-V" n |
---|
| 376 | to make an \*r file acceptable to \*r version |
---|
| 377 | .I n |
---|
| 378 | by discarding information that would confuse version |
---|
| 379 | .IR n . |
---|
| 380 | .PP |
---|
| 381 | \*r version 5.5 and earlier does not support the |
---|
| 382 | .B \-x |
---|
| 383 | option, and requires a |
---|
| 384 | .B ,v |
---|
| 385 | suffix on an \*r pathname. |
---|
| 386 | .SH FILES |
---|
| 387 | .B rcs |
---|
| 388 | accesses files much as |
---|
| 389 | .BR ci (1) |
---|
| 390 | does, |
---|
| 391 | except that it uses the effective user for all accesses, |
---|
| 392 | it does not write the working file or its directory, |
---|
| 393 | and it does not even read the working file unless a revision number of |
---|
| 394 | .B $ |
---|
| 395 | is specified. |
---|
| 396 | .SH ENVIRONMENT |
---|
| 397 | .TP |
---|
| 398 | .B \s-1RCSINIT\s0 |
---|
| 399 | options prepended to the argument list, separated by spaces. |
---|
| 400 | See |
---|
| 401 | .BR ci (1) |
---|
| 402 | for details. |
---|
| 403 | .SH DIAGNOSTICS |
---|
| 404 | The \*r pathname and the revisions outdated are written to |
---|
| 405 | the diagnostic output. |
---|
| 406 | The exit status is zero if and only if all operations were successful. |
---|
| 407 | .SH IDENTIFICATION |
---|
| 408 | Author: Walter F. Tichy. |
---|
| 409 | .br |
---|
| 410 | Manual Page Revision: \*(Rv; Release Date: \*(Dt. |
---|
| 411 | .br |
---|
| 412 | Copyright \(co 1982, 1988, 1989 Walter F. Tichy. |
---|
| 413 | .br |
---|
| 414 | Copyright \(co 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert. |
---|
| 415 | .SH "SEE ALSO" |
---|
| 416 | rcsintro(1), co(1), ci(1), ident(1), rcsclean(1), rcsdiff(1), |
---|
| 417 | rcsmerge(1), rlog(1), rcsfile(5) |
---|
| 418 | .br |
---|
| 419 | Walter F. Tichy, |
---|
| 420 | \*r\*-A System for Version Control, |
---|
| 421 | .I "Software\*-Practice & Experience" |
---|
| 422 | .BR 15 , |
---|
| 423 | 7 (July 1985), 637-654. |
---|
| 424 | .SH BUGS |
---|
| 425 | A catastrophe (e.g. a system crash) can cause \*r to leave behind |
---|
| 426 | a semaphore file that causes later invocations of \*r to claim |
---|
| 427 | that the \*r file is in use. |
---|
| 428 | To fix this, remove the semaphore file. |
---|
| 429 | A semaphore file's name typically begins with |
---|
| 430 | .B , |
---|
| 431 | or ends with |
---|
| 432 | .BR _ . |
---|
| 433 | .PP |
---|
| 434 | The separator for revision ranges in the |
---|
| 435 | .B \-o |
---|
| 436 | option used to be |
---|
| 437 | .B \- |
---|
| 438 | instead of |
---|
| 439 | .BR : , |
---|
| 440 | but this leads to confusion when symbolic names contain |
---|
| 441 | .BR \- . |
---|
| 442 | For backwards compatibility |
---|
| 443 | .B "rcs \-o" |
---|
| 444 | still supports the old |
---|
| 445 | .B \- |
---|
| 446 | separator, but it warns about this obsolete use. |
---|
| 447 | .PP |
---|
| 448 | Symbolic names need not refer to existing revisions or branches. |
---|
| 449 | For example, the |
---|
| 450 | .B \-o |
---|
| 451 | option does not remove symbolic names for the outdated revisions; you must use |
---|
| 452 | .B \-n |
---|
| 453 | to remove the names. |
---|
| 454 | .br |
---|