|HP-UX Reference > C
HP-UX 11i Version 3: February 2007
ci — check in RCS revisions
ci stores new revisions into RCS files. Each file name ending in ,v is treated as an RCS file; all others are assumed to be working files. ci deposits the contents of each working file into the corresponding RCS file (see rcsintro(5)).
If the RCS file does not exist, ci creates it and deposits the contents of the working file as the initial revision. The default number is "1.1". The access list is initialized to empty. Instead of the log message, ci requests descriptive text (see the -t option below).
An RCS file created by ci inherits the read and execute permissions from the working file. If the RCS file exists, ci preserves its read and execute permissions. ci always turns off all write permissions of RCS files.
The caller of the command must have read/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; therefore links to RCS files are useless.
For ci to work, the user's login must be in the access list unless the access list is empty, the user is the owner of the file, or the user is super-user.
Normally, ci checks whether the revision to be deposited is different from the preceding one. If it is not different, ci either aborts the deposit (if -q is given) or asks whether to abort (if -q is omitted). A deposit can be forced with the -f option.
If sufficient memory is not available for checking the difference between the revision to be deposited and the preceding one, then either swap or maxdsiz values can be increased.
For each revision deposited, ci prompts for a log message. The log message should summarize the change and must be terminated with a line containing a single "." or a control-D. If several files are being checked in, ci asks whether or not to reuse the log message from the previous file. If the standard input is not a terminal, ci suppresses the prompt and uses the same log message for all files (see -m option below.
The number of the deposited revision can be given with any of the options -r, -f, -k, -l, -u, or -q (see -r option below).
To add a new revision to an existing branch, the head 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(1)). A lock held by someone else can be broken with the rcs command (see rcs(1)).
For each revision, ci prints the RCS file, the working file, and the number of both the deposited and the preceding revision. The exit status always refers to the last file checked in, and is 0 if the operation was successful, 1 if unsuccessful.
If the current directory contains a subdirectory RCS with an RCS file io.c,v, all of the following commands deposit the latest revision from io.c into RCS/io.c,v:
ci io.c ci RCS/io.c,v ci io.c,v ci io.c RCS/io.c,v ci io.c io.c,v ci RCS/io.c,v io.c ci io.c,v io.c
Check in version 1.2 of RCS file foo.c,v, with the message Bug fix:
ci -r1.2 -m"Bug Fix" foo.c,v
The names of RCS files are generated by appending ,v to the end of the working file name. If the resulting RCS file name is too long for the file system on which the RCS file should reside, ci terminates with an error message.
The log message cannot exceed 2046 bytes.
A file with approximately 240 revisions may cause a hash table overflow. ci cannot add another revision to the file until some of the old revisions have been removed. Use the rcs -o (obsolete) command option to remove old revisions.
RCS is designed to be used with TEXT files only. Attempting to use RCS with nontext (binary) files results in data corruption.