mirror of
https://github.com/opnsense/src.git
synced 2026-02-22 17:32:57 -05:00
454 lines
10 KiB
Groff
454 lines
10 KiB
Groff
.de Id
|
|
.ds Rv \\$3
|
|
.ds Dt \\$4
|
|
..
|
|
.Id $FreeBSD$
|
|
.ds r \&\s-1RCS\s0
|
|
.if n .ds - \%--
|
|
.if t .ds - \(em
|
|
.if !\n(.g \{\
|
|
. if !\w|\*(lq| \{\
|
|
. ds lq ``
|
|
. if \w'\(lq' .ds lq "\(lq
|
|
. \}
|
|
. if !\w|\*(rq| \{\
|
|
. ds rq ''
|
|
. if \w'\(rq' .ds rq "\(rq
|
|
. \}
|
|
.\}
|
|
.TH RCS 1 \*(Dt GNU
|
|
.SH NAME
|
|
rcs \- change RCS file attributes
|
|
.SH SYNOPSIS
|
|
.B rcs
|
|
.IR "options file " .\|.\|.
|
|
.SH DESCRIPTION
|
|
.B rcs
|
|
creates new \*r files or changes attributes of existing ones.
|
|
An \*r file contains multiple revisions of text,
|
|
an access list, a change log,
|
|
descriptive text,
|
|
and some control attributes.
|
|
For
|
|
.B rcs
|
|
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
|
|
.B \-i
|
|
option is present.
|
|
.PP
|
|
Pathnames matching an \*r suffix denote \*r files;
|
|
all others denote working files.
|
|
Names are paired as explained in
|
|
.BR ci (1).
|
|
Revision numbers use the syntax described in
|
|
.BR ci (1).
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-i
|
|
Create and initialize a new \*r file, but do not deposit any revision.
|
|
If the \*r file has no path prefix, try to place it
|
|
first into the subdirectory
|
|
.BR ./RCS ,
|
|
and then into the current directory.
|
|
If the \*r file
|
|
already exists, print an error message.
|
|
.TP
|
|
.BI \-a "logins"
|
|
Append the login names appearing in the comma-separated list
|
|
.I logins
|
|
to the access list of the \*r file.
|
|
.TP
|
|
.BI \-A "oldfile"
|
|
Append the access list of
|
|
.I oldfile
|
|
to the access list of the \*r file.
|
|
.TP
|
|
.BR \-e [\f2logins\fP]
|
|
Erase the login names appearing in the comma-separated list
|
|
.I logins
|
|
from the access list of the \*r file.
|
|
If
|
|
.I logins
|
|
is omitted, erase the entire access list.
|
|
.TP
|
|
.BR \-b [\f2rev\fP]
|
|
Set the default branch to
|
|
.IR rev .
|
|
If
|
|
.I rev
|
|
is omitted, the default
|
|
branch is reset to the (dynamically) highest branch on the trunk.
|
|
.TP
|
|
.BI \-c string
|
|
Set the comment leader to
|
|
.IR string .
|
|
An initial
|
|
.BR ci ,
|
|
or an
|
|
.B "rcs\ \-i"
|
|
without
|
|
.BR \-c ,
|
|
guesses the comment leader from the suffix of the working filename.
|
|
.RS
|
|
.PP
|
|
This option is obsolescent, since \*r normally uses the preceding
|
|
.B $\&Log$
|
|
line's prefix when inserting log lines during checkout (see
|
|
.BR co (1)).
|
|
However, older versions of \*r use the comment leader instead of the
|
|
.B $\&Log$
|
|
line's prefix, so
|
|
if you plan to access a file with both old and new versions of \*r,
|
|
make sure its comment leader matches its
|
|
.B $\&Log$
|
|
line prefix.
|
|
.RE
|
|
.TP
|
|
.BI \-k subst
|
|
Set the default keyword substitution to
|
|
.IR subst .
|
|
The effect of keyword substitution is described in
|
|
.BR co (1).
|
|
Giving an explicit
|
|
.B \-k
|
|
option to
|
|
.BR co ,
|
|
.BR rcsdiff ,
|
|
and
|
|
.B rcsmerge
|
|
overrides this default.
|
|
Beware
|
|
.BR "rcs\ \-kv",
|
|
because
|
|
.B \-kv
|
|
is incompatible with
|
|
.BR "co\ \-l".
|
|
Use
|
|
.B "rcs\ \-kkv"
|
|
to restore the normal default keyword substitution.
|
|
.TP
|
|
.BR \-l [\f2rev\fP]
|
|
Lock the revision with number
|
|
.IR rev .
|
|
If a branch is given, lock the latest revision on that branch.
|
|
If
|
|
.I rev
|
|
is omitted, lock the latest revision on the default branch.
|
|
Locking prevents overlapping changes.
|
|
If someone else already holds the lock, the lock is broken as with
|
|
.B "rcs\ \-u"
|
|
(see below).
|
|
.TP
|
|
.BR \-u [\f2rev\fP]
|
|
Unlock the revision with number
|
|
.IR rev .
|
|
If a branch is given, unlock the latest revision on that branch.
|
|
If
|
|
.I rev
|
|
is omitted, remove the latest lock held by the caller.
|
|
Normally, only the locker of a revision can 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 commentary is terminated by end-of-file or by a line containing
|
|
.BR \&. "\ by"
|
|
itself.
|
|
.TP
|
|
.B \-L
|
|
Set locking to
|
|
.IR strict .
|
|
Strict locking means that the owner
|
|
of an \*r file is not exempt from locking for checkin.
|
|
This option should be used for files that are shared.
|
|
.TP
|
|
.B \-U
|
|
Set locking to non-strict. Non-strict locking means that the owner of
|
|
a file need not lock a revision for checkin.
|
|
This option should
|
|
.I not
|
|
be used for files that are shared.
|
|
Whether default locking is strict is determined by your system administrator,
|
|
but it is normally strict.
|
|
.TP
|
|
\f3\-m\fP\f2rev\fP\f3:\fP\f2msg\fP
|
|
Replace revision
|
|
.IR rev 's
|
|
log message with
|
|
.IR msg .
|
|
.TP
|
|
.B \-M
|
|
Do not send mail when breaking somebody else's lock.
|
|
This option is not meant for casual use;
|
|
it is meant for programs that warn users by other means, and invoke
|
|
.B "rcs\ \-u"
|
|
only as a low-level lock-breaking operation.
|
|
.TP
|
|
\f3\-n\fP\f2name\fP[\f3:\fP[\f2rev\fP]]
|
|
Associate the symbolic name
|
|
.I name
|
|
with the branch or
|
|
revision
|
|
.IR rev .
|
|
Delete the symbolic name if both
|
|
.B :
|
|
and
|
|
.I rev
|
|
are omitted; otherwise, print an error message if
|
|
.I name
|
|
is already associated with
|
|
another number.
|
|
If
|
|
.I rev
|
|
is symbolic, it is expanded before association.
|
|
A
|
|
.I rev
|
|
consisting of a branch number followed by a
|
|
.B .\&
|
|
stands for the current latest revision in the branch.
|
|
A
|
|
.B :
|
|
with an empty
|
|
.I rev
|
|
stands for the current latest revision on the default branch,
|
|
normally the trunk.
|
|
For example,
|
|
.BI "rcs\ \-n" name ":\ RCS/*"
|
|
associates
|
|
.I name
|
|
with the current latest revision of all the named \*r files;
|
|
this contrasts with
|
|
.BI "rcs\ \-n" name ":$\ RCS/*"
|
|
which associates
|
|
.I name
|
|
with the revision numbers extracted from keyword strings
|
|
in the corresponding working files.
|
|
.TP
|
|
\f3\-N\fP\f2name\fP[\f3:\fP[\f2rev\fP]]
|
|
Act like
|
|
.BR \-n ,
|
|
except override any previous assignment of
|
|
.IR name .
|
|
.TP
|
|
.BI \-o range
|
|
deletes (\*(lqoutdates\*(rq) the revisions given by
|
|
.IR range .
|
|
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
|
|
.IB rev1 : rev2
|
|
means
|
|
revisions
|
|
.I rev1
|
|
to
|
|
.I rev2
|
|
on the same branch,
|
|
.BI : rev
|
|
means from the beginning of the branch containing
|
|
.I rev
|
|
up to and including
|
|
.IR rev ,
|
|
and
|
|
.IB rev :
|
|
means
|
|
from revision
|
|
.I rev
|
|
to the end of the branch containing
|
|
.IR rev .
|
|
None of the outdated revisions can have branches or locks.
|
|
.TP
|
|
.B \-q
|
|
Run quietly; do not print diagnostics.
|
|
.TP
|
|
.B \-I
|
|
Run interactively, even if the standard input is not a terminal.
|
|
.TP
|
|
.B \-s\f2state\fP\f1[\fP:\f2rev\fP\f1]\fP
|
|
Set the state attribute of the revision
|
|
.I rev
|
|
to
|
|
.IR state .
|
|
If
|
|
.I rev
|
|
is a branch number, assume the latest revision on that branch.
|
|
If
|
|
.I rev
|
|
is omitted, assume the latest revision on the default branch.
|
|
Any identifier is acceptable for
|
|
.IR state .
|
|
A useful set of states
|
|
is
|
|
.B Exp
|
|
(for experimental),
|
|
.B Stab
|
|
(for stable), and
|
|
.B Rel
|
|
(for
|
|
released).
|
|
By default,
|
|
.BR ci (1)
|
|
sets the state of a revision to
|
|
.BR Exp .
|
|
.TP
|
|
.BR \-t [\f2file\fP]
|
|
Write descriptive text from the contents of the named
|
|
.I file
|
|
into the \*r file, deleting the existing text.
|
|
The
|
|
.IR file
|
|
pathname cannot begin with
|
|
.BR \- .
|
|
If
|
|
.I file
|
|
is omitted, obtain the text from standard input,
|
|
terminated by end-of-file or by a line containing
|
|
.BR \&. "\ by"
|
|
itself.
|
|
Prompt for the text if interaction is possible; see
|
|
.BR \-I .
|
|
With
|
|
.BR \-i ,
|
|
descriptive text is obtained
|
|
even if
|
|
.B \-t
|
|
is not given.
|
|
.TP
|
|
.BI \-t\- string
|
|
Write descriptive text from the
|
|
.I string
|
|
into the \*r file, deleting the existing text.
|
|
.TP
|
|
.B \-T
|
|
Preserve the modification time on the \*r file
|
|
unless a revision is removed.
|
|
This option can suppress extensive recompilation caused by a
|
|
.BR make (1)
|
|
dependency of some copy of the working file on the \*r file.
|
|
Use this option with care; it can suppress recompilation even when it is needed,
|
|
i.e. when a change to the \*r file
|
|
would mean a change to keyword strings in the working file.
|
|
.TP
|
|
.BI \-V
|
|
Print \*r's version number.
|
|
.TP
|
|
.BI \-V n
|
|
Emulate \*r version
|
|
.IR n .
|
|
See
|
|
.BR co (1)
|
|
for details.
|
|
.TP
|
|
.BI \-x "suffixes"
|
|
Use
|
|
.I suffixes
|
|
to characterize \*r files.
|
|
See
|
|
.BR ci (1)
|
|
for details.
|
|
.TP
|
|
.BI \-z zone
|
|
Use
|
|
.I zone
|
|
as the default time zone.
|
|
This option has no effect;
|
|
it is present for compatibility with other \*r commands.
|
|
.PP
|
|
At least one explicit option must be given,
|
|
to ensure compatibility with future planned extensions
|
|
to the
|
|
.B rcs
|
|
command.
|
|
.SH COMPATIBILITY
|
|
The
|
|
.BI \-b rev
|
|
option generates an \*r file that cannot be parsed by \*r version 3 or earlier.
|
|
.PP
|
|
The
|
|
.BI \-k subst
|
|
options (except
|
|
.BR \-kkv )
|
|
generate an \*r file that cannot be parsed by \*r version 4 or earlier.
|
|
.PP
|
|
Use
|
|
.BI "rcs \-V" n
|
|
to make an \*r file acceptable to \*r version
|
|
.I n
|
|
by discarding information that would confuse version
|
|
.IR n .
|
|
.PP
|
|
\*r version 5.5 and earlier does not support the
|
|
.B \-x
|
|
option, and requires a
|
|
.B ,v
|
|
suffix on an \*r pathname.
|
|
.SH FILES
|
|
.B rcs
|
|
accesses files much as
|
|
.BR ci (1)
|
|
does,
|
|
except that it uses the effective user for all accesses,
|
|
it does not write the working file or its directory,
|
|
and it does not even read the working file unless a revision number of
|
|
.B $
|
|
is specified.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B \s-1RCSINIT\s0
|
|
options prepended to the argument list, separated by spaces.
|
|
See
|
|
.BR ci (1)
|
|
for details.
|
|
.SH DIAGNOSTICS
|
|
The \*r pathname and the revisions outdated are written to
|
|
the diagnostic output.
|
|
The exit status is zero if and only if all operations were successful.
|
|
.SH IDENTIFICATION
|
|
Author: Walter F. Tichy.
|
|
.br
|
|
Manual Page Revision: \*(Rv; Release Date: \*(Dt.
|
|
.br
|
|
Copyright \(co 1982, 1988, 1989 Walter F. Tichy.
|
|
.br
|
|
Copyright \(co 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.
|
|
.SH "SEE ALSO"
|
|
rcsintro(1), co(1), ci(1), ident(1), rcsclean(1), rcsdiff(1),
|
|
rcsmerge(1), rlog(1), rcsfile(5)
|
|
.br
|
|
Walter F. Tichy,
|
|
\*r\*-A System for Version Control,
|
|
.I "Software\*-Practice & Experience"
|
|
.BR 15 ,
|
|
7 (July 1985), 637-654.
|
|
.SH BUGS
|
|
A catastrophe (e.g. a system crash) can cause \*r to leave behind
|
|
a semaphore file that causes later invocations of \*r to claim
|
|
that the \*r file is in use.
|
|
To fix this, remove the semaphore file.
|
|
A semaphore file's name typically begins with
|
|
.B ,
|
|
or ends with
|
|
.BR _ .
|
|
.PP
|
|
The separator for revision ranges in the
|
|
.B \-o
|
|
option used to be
|
|
.B \-
|
|
instead of
|
|
.BR : ,
|
|
but this leads to confusion when symbolic names contain
|
|
.BR \- .
|
|
For backwards compatibility
|
|
.B "rcs \-o"
|
|
still supports the old
|
|
.B \-
|
|
separator, but it warns about this obsolete use.
|
|
.PP
|
|
Symbolic names need not refer to existing revisions or branches.
|
|
For example, the
|
|
.B \-o
|
|
option does not remove symbolic names for the outdated revisions; you must use
|
|
.B \-n
|
|
to remove the names.
|
|
.br
|