CI(1RCS) COMMAND REFERENCE CI(1RCS) NAME ci - check in RCS revisions SYNOPSIS ci [ -Nname ] [ -P ] [ -d[rev] ] [ -f[rev] ] [ -k[rev] ] [ -l[rev] ] [ -mmsg ] [ -nname ] [ -q[rev] ] [ -r[rev] ] [ -sstate ] [ -ttxtfilename ] [ -u[rev] ] filename ... DESCRIPTION Ci stores new revisions into RCS files. Each filename ending in ,v is considered an RCS file; all others are assumed to be working files containing new revisions. Ci deposits the contents of each working file into the corresponding RCS file. Pairs of RCS files and working files may be specified in three ways (see also the EXAMPLES section of co(1rcs)): 1) Both the RCS file and the working file are given. The RCS filename is of the form pathname1/workfilename,v and the working filename is of the form pathname2/workfilename, where pathname1/ and pathname2/ are (possibly different or empty) paths and workfilename is a filename. 2) Only the RCS file is given. Then the working file is assumed to be in the current directory and its name is derived from the name of the RCS file by removing pathname1/ and the suffix ,v. 3) Only the working file is given. Then the name of the RCS file is derived from the name of the working file by removing pathname2/ and appending the suffix ,v. If the RCS file is omitted or specified without a path, then ci looks for the RCS file first in the directory ./RCS and then in the current directory. For ci to work, your login name must be on the access list, unless the access list is empty or you are the superuser or the owner of the file. To append a new revision to an existing branch, the tip revision on that branch must be locked by the caller. Otherwise, only a new branch can be created. This restriction is not enforced for the owner of the file, unless locking is set to strict (see rcs(1rcs) ). A lock held by someone else may be broken with the rcs command and its options. If the revision to be deposited is not different from the preceding one, ci either aborts the deposit (if -q is given) or asks whether to abort (if -q is omitted). The current revision is unlocked in this case, unless the -d or -l flag Printed 5/12/88 1
CI(1RCS) COMMAND REFERENCE CI(1RCS) is given. If the -u flag is given, the file is unlocked, removed, and checked out again. A deposit can be forced with the -f option. For each revision deposited, ci prompts for a log message that summarizes the change. You can enter the text editor to edit the log message by pressing <ESC>. The environment variables RCSEDIT, EDITOR, and EDIT are checked in order to determine the text editor to invoke. If none of these are set, vi(1) is invoked. When you finish entering the log message, enter a line containing only a single dot (.) or a <CTRL-D>. If several files are checked in, ci asks whether to reuse the previous log message. If the standard input is not a terminal, ci suppresses the prompt and uses the same log message for all files. See also -m. You can specify the number of the deposited revision with one of the options: -r, -d, -f, -k, -l, -u, or -q (see -r). If the RCS file does not exist, ci creates it and deposits the contents of the working file as the initial revision (default number: 1.1). The access list is initialized to empty. Instead of the log message, ci requests descriptive text (see -t below). An RCS file created by ci inherits the read and execute permissions from the working file. If the RCS file exists already, ci preserves its read and execute permissions. Ci always turns off all write permissions of RCS files. OPTIONS -d[rev] If the revision has not changed and the checkin is aborted, this option causes the current revision to remain locked. -f[rev] Force a deposit. The new revision is deposited even it is not different from the preceding one. -k[rev] Searches the working file for keyword values to determine its revision number, creation date, author, and state (see co(1rcs)), and assigns these values to the deposited revision, rather than computing them. This option is often used for software distribution. A revision that is sent to several sites should be checked in with the -k option at these sites to preserve its original number, date, author, and state. Printed 5/12/88 2
CI(1RCS) COMMAND REFERENCE CI(1RCS) -l[rev] Works like -r, except it performs an additional co -l for the deposited revision. Thus, the deposited revision is immediately checked out again and locked. This is often used when you want to save a revision and continue editing it after the checkin. -mmsg Use msg as the log message for all revisions checked in. -nname Assign the symbolic name name to the checked-in revision. Ci prints an error message if name is already assigned to another number. -q[rev] Quiet mode. Diagnostic output is not printed. A revision that is the same as the preceding one is not deposited, unless -f is given. -r[rev] Assigns the revision number rev to the checked-in revision, releases the corresponding lock, and deletes the working file. This is the default. If rev is omitted, ci derives the new revision number from your last lock. If you locked the tip revision of a branch, the new revision is appended to that branch. The new revision number is obtained by incrementing the tip revision number. If you locked a nontip revision, a new branch is started at that revision by incrementing the highest branch number at that revision. The default initial branch and level numbers are 1. If you don't hold a lock, but you are the owner of the file and locking is not set to strict, then the revision is appended to the trunk. If rev indicates a revision number, it must be higher than the latest one on the branch to which rev belongs, or must start a new branch. If rev indicates a branch instead of a revision, the new revision is appended to that branch. The level number is obtained by incrementing the tip revision number of that branch. If rev indicates a nonexisting branch, that branch is created with the initial revision numbered rev.1. Exception: On the trunk, revisions can be appended to the end, but not inserted. -sstate Printed 5/12/88 3
CI(1RCS) COMMAND REFERENCE CI(1RCS) Set the state of the checked-in revision to state. The default is Exp. -t[txtfilename] Write descriptive text into the RCS file (deleting the existing text). If txtfilename is omitted, ci prompts you for text supplied from the standard input, terminated with a line containing a single dot (.) or <CTRL-D>. Otherwise, the descriptive text is copied from txtfilename. During initialization, descriptive text is requested even if -t is not given. The prompt is suppressed if standard input is not a terminal. -u[rev] Works like -l, except that the deposited revision is not locked. This is often used when you want to use the revision immediately after checkin. -P The access and modification dates of the RCS file (and the working file if the -l or -u option is given) are made the same as the original working file. This option is supplied for special applications involving very large projects with many file dependencies but should generally not be used because of the problems that can occur. See CAVEATS. -Nname Same as -n, except that it overrides a previous assignment of name. EXAMPLES The following example checks the file example.c into the RCS file /usr/lib/RCS/example.c,v and leaves a copy of the file in the current directory. The file in the current directory will not be writeable: ci -u example.c /usr/lib/RCS/example.c,v If the current directory is /usr/lib or /usr/lib/RCS, the last argument may be ommitted without changing the result of the command. FILES ,RCSt$$ Temporary storage for checking in the revision. ,*, Semaphore file. This file prevents modifications to the working file by other RCS programs while being checked in. DIAGNOSTICS For each revision, ci prints the RCS file, the working file, and the number of both the deposited and the preceding Printed 5/12/88 4
CI(1RCS) COMMAND REFERENCE CI(1RCS) revision. VARIABLES RCSLOCK If set to nonstrict, all new RCS files will have locking set to non-strict mode. Otherwise, locking is strict. RCSEDIT Checked for the name of a text editor to invoke. RETURN VALUE [NO_ERRS] Command completed without error. [NP_ERR] An error occurred that was not a system error. Execution terminated. CAVEATS You must have read and write permission for the directories containing the RCS file and the working file, and read permission for the RCS file itself. A number of temporary files are created. A semaphore file is created in the directory containing the RCS file. Ci always creates a new RCS file and unlinks the old one. This strategy makes links to RCS files useless. The maximum length of a log message is 2048 characters. The maximum length of a description is 2048. Longer messages are truncated. The maximum number of revisions that can be stored in a single RCS file is 719. When there are more than 700 revisions in a file, a warning message is printed on the terminal (if possible) every time an RCS command works on the file. See rcsfile(5rcs) for information on what action to take in this case. Ci does not allow the 720th revision to be checked in. On older versions of RCS, the maximum number of revisions that can be stored in a single RCS file is 239. No warning message is displayed on the terminal if this number is exceeded. The -P option is supplied so that make does not think that a file has been changed just because it was checked in (see make(1)). This causes make to do less work, but it can cause problems if the values of any of the RCS keyword values are used. For example, if a revision logging system is used to store the version numbers of source files into the object code, these numbers may not be correct if the -P option is used. It is best not to use this option, which is supplied for people building very large projects. Printed 5/12/88 5
CI(1RCS) COMMAND REFERENCE CI(1RCS) Unless the -l option is used, the Locker keyword is not expanded. SEE ALSO co(1rcs), ident(1rcs), rlog(1rcs), rcs(1rcs), rcsdiff(1rcs), rcsintro(1rcs), rcsmerge(1rcs), and rcsfile(5rcs). Printed 5/12/88 6
%%index%% na:264,79; sy:343,671; de:1014,2639;3989,1924; op:5913,963;7212,2530;10078,1620; ex:11698,596; fi:12294,295; di:12589,268;13193,16; va:13209,380; rv:13589,288; ca:13877,1991;16204,109; se:16313,399; %%index%%000000000232