OnWorks favicon

ci - Online in the Cloud

Run ci in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command ci that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



ci - check in RCS revisions


ci [options] file ...


ci stores new revisions into RCS files. Each file name matching an RCS suffix is taken to
be 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. If only a
working file is given, ci tries to find the corresponding RCS file in an RCS subdirectory
and then in the working file's directory. For more details, see FILE NAMING below.

For ci to work, the caller's login must be on the access list, except if the access list
is empty or the caller is 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 if non-strict locking is used (see rcs(1)). A lock held by
someone else can be broken with the rcs command.

Unless the -f option is given, ci checks whether the revision to be deposited differs from
the preceding one. If not, instead of creating a new revision ci reverts to the preceding
one. To revert, ordinary ci removes the working file and any lock; ci -l keeps and ci -u
removes any lock, and then they both generate a new working file much as if co -l or co -u
had been applied to the preceding revision. When reverting, any -n and -s options apply
to the preceding revision.

For each revision deposited, ci prompts for a log message. The log message should
summarize the change and must be terminated by end-of-file or by a line containing . by
itself. 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.

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).

The number rev of the deposited revision can be given by any of the options -f, -i, -I,
-j, -k, -l, -M, -q, -r, or -u. rev can be symbolic, numeric, or mixed. Symbolic names in
rev must already be defined; see the -n and -N options for assigning names during checkin.
If rev is $, ci determines the revision number from keyword values in the working file.

If rev begins with a period, then the default branch (normally the trunk) is prepended to
it. If rev is a branch number followed by a period, then the latest revision on that
branch is used.

If rev is 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 is a branch rather than a revision number, 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 non-existing branch, that branch is created with the initial
revision numbered rev.1.

If rev is omitted, ci tries to derive the new revision number from the caller's last lock.
If the caller has 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 the caller locked a non-tip 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 rev is omitted and the caller has no lock, but owns the file and locking is not set to
strict, then the revision is appended to the default branch (normally the trunk; see the
-b option of rcs(1)).

Exception: On the trunk, revisions can be appended to the end, but not inserted.


-rrev Check in revision rev.

-r The bare -r option (without any revision) has an unusual meaning in ci. With other
RCS commands, a bare -r option specifies the most recent revision on the default
branch, but with ci, a bare -r option reestablishes the default behavior of
releasing a lock and removing the working file, and is used to override any default
-l or -u options established by shell aliases or scripts.

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
useful for saving a revision although one wants to continue editing it after the

works like -l, except that the deposited revision is not locked. This lets one
read the working file immediately after checkin.

The -l, bare -r, and -u options are mutually exclusive and silently override each
other. For example, ci -u -r is equivalent to ci -r because bare -r overrides -u.

forces a deposit; the new revision is deposited even it is not different from the
preceding one.

searches the working file for keyword values to determine its revision number,
creation date, state, and author (see co(1)), and assigns these values to the
deposited revision, rather than computing them locally. It also generates a
default login message noting the login of the caller and the actual checkin date.
This option is useful for software distribution. A revision that is sent to
several sites should be checked in with the -k option at these sites to preserve
the original number, date, author, and state. The extracted keyword values and the
default log message can be overridden with the options -d, -m, -s, -w, and any
option that carries a revision number.

quiet mode; diagnostic output is not printed. A revision that is not different
from the preceding one is not deposited, unless -f is given.

initial checkin; report an error if the RCS file already exists. This avoids race
conditions in certain applications.

just checkin and do not initialize; report an error if the RCS file does not
already exist.

interactive mode; the user is prompted and questioned even if the standard input is
not a terminal.

uses date for the checkin date and time. The date is specified in free format as
explained in co(1). This is useful for lying about the checkin date, and for -k if
no date is available. If date is empty, the working file's time of last
modification is used.

Set the modification time on any new working file to be the date of the retrieved
revision. For example, ci -d -M -u f does not alter f's modification time, even if
f's contents change due to keyword substitution. Use this option with care; it can
confuse make(1).

uses the string msg as the log message for all revisions checked in. If msg is
omitted, it defaults to "*** empty log message ***". By convention, log messages
that start with # are comments and are ignored by programs like GNU Emacs's vc
package. Also, log messages that start with {clumpname} (followed by white space)
are meant to be clumped together if possible, even if they are associated with
different files; the {clumpname} label is used only for clumping, and is not
considered to be part of the log message itself.

-nname assigns the symbolic name name to the number of the checked-in revision. ci prints
an error message if name is already assigned to another number.

-Nname same as -n, except that it overrides a previous assignment of name.

sets the state of the checked-in revision to the identifier state. The default
state is Exp.

-tfile writes descriptive text from the contents of the named file into the RCS file,
deleting the existing text. The file cannot begin with -.

Write descriptive text from the string into the RCS file, deleting the existing

The -t option, in both its forms, has effect only during an initial checkin; it is
silently ignored otherwise.

During the initial checkin, if -t is not given, ci obtains the text from standard
input, terminated by end-of-file or by a line containing . by itself. The user is
prompted for the text if interaction is possible; see -I.

For backward compatibility with older versions of RCS, a bare -t option is ignored.

-T Set the RCS file's modification time to the new revision's time if the former
precedes the latter and there is a new revision; preserve the RCS file's
modification time otherwise. If you have locked a revision, ci usually updates the
RCS file's modification time to the current time, because the lock is stored in the
RCS file and removing the lock requires changing the RCS file. This can create an
RCS file newer than the working file in one of two ways: first, ci -M can create a
working file with a date before the current time; second, when reverting to the
previous revision the RCS file can change while the working file remains unchanged.
These two cases can cause excessive recompilation caused by a make(1) dependency of
the working file on the RCS file. The -T option inhibits this recompilation by
lying about the RCS file's date. Use this option with care; it can suppress
recompilation even when a checkin of one working file should affect another working
file associated with the same RCS file. For example, suppose the RCS file's time
is 01:00, the (changed) working file's time is 02:00, some other copy of the
working file has a time of 03:00, and the current time is 04:00. Then ci -d -T
sets the RCS file's time to 02:00 instead of the usual 04:00; this causes make(1)
to think (incorrectly) that the other copy is newer than the RCS file.

uses login for the author field of the deposited revision. Useful for lying about
the author, and for -k if no author is available.

-V Print RCS's version number.

-Vn Emulate RCS version n. See co(1) for details.

specifies the suffixes for RCS files. A nonempty suffix matches any file name
ending in the suffix. An empty suffix matches any file name of the form RCS/frag
or frag1/RCS/frag2. The -x option can specify a list of suffixes separated by /.
For example, -x,v/ specifies two suffixes: ,v and the empty suffix. If two or more
suffixes are specified, they are tried in order when looking for an RCS file; the
first one that works is used for that file. If no RCS file is found but an RCS
file can be created, the suffixes are tried in order to determine the new RCS
file's name. The default for suffixes is installation-dependent; normally it is
,v/ for hosts like Unix that permit commas in file names, and is empty (i.e. just
the empty suffix) for other hosts.

-zzone specifies the date output format in keyword substitution, and specifies the default
time zone for date in the -ddate option. The zone should be empty, a numeric UTC
offset, or the special string LT for local time. The default is an empty zone,
which uses the traditional RCS format of UTC without any time zone indication and
with slashes separating the parts of the date; otherwise, times are output in ISO
8601 format with time zone indication. For example, if local time is January 11,
1990, 8pm Pacific Standard Time, eight hours west of UTC, then the time is output
as follows:

option time output
-z 1990/01/12 04:00:00 (default)
-zLT 1990-01-11 20:00:00-08
-z+05:30 1990-01-12 09:30:00+05:30

The -z option does not affect dates stored in RCS files, which are always UTC.


Pairs of RCS files and working files can be specified in three ways (see also the example

1) Both the RCS file and the working file are given. The RCS file name is of the form
frag1/workfileX and the working file name is of the form frag2/workfile where frag1/ and
frag2/ are (possibly different or empty) file names, workfile is a file name, and X is an
RCS suffix. If X is empty, frag1/ must start with RCS/ or must contain /RCS/.

2) Only the RCS file is given. Then the working file is created in the current directory
and its name is derived from the RCS file name by removing frag1/ and the suffix X.

3) Only the working file is given. Then ci considers each RCS suffix X in turn, looking
for an RCS file of the form frag2/RCS/workfileX or (if the former is not found and X is
nonempty) frag2/workfileX.

If the RCS file is specified without a file name in 1) and 2), ci looks for the RCS file
first in the directory ./RCS and then in the current directory.

ci reports an error if an attempt to open an RCS file fails for an unusual reason, even if
the RCS file's name is just one of several possibilities. For example, to suppress use of
RCS commands in a directory d, create a regular file named d/RCS so that casual attempts
to use RCS commands in d fail because d/RCS is not a directory.


Suppose ,v is an RCS suffix and the current directory contains a subdirectory RCS with an
RCS file io.c,v. Then each of the following commands check in a copy of io.c into
RCS/io.c,v as the latest revision, removing io.c.

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;

Suppose instead that the empty suffix is an RCS suffix and the current directory contains
a subdirectory RCS with an RCS file io.c. The each of the following commands checks in a
new revision.

ci io.c; ci RCS/io.c;
ci io.c RCS/io.c;
ci RCS/io.c io.c;


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.

Use ci online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Image Downloader
    Image Downloader
    Crawl and download images using
    Selenium Using python3 and PyQt5.
    Supported Search Engine: Google, Bing,
    Baidu. Keywords input from the keyboard
    or input from ...
    Download Image Downloader
  • 2
    Eclipse Tomcat Plugin
    Eclipse Tomcat Plugin
    The Eclipse Tomcat Plugin provides
    simple integration of a tomcat servlet
    container for the development of java
    web applications. You can join us for
    Download Eclipse Tomcat Plugin
  • 3
    WebTorrent Desktop
    WebTorrent Desktop
    WebTorrent Desktop is for streaming
    torrents on Mac, Windows or Linux. It
    connects to both BitTorrent and
    WebTorrent peers. Now there's no
    need to wait for...
    Download WebTorrent Desktop
  • 4
    GenX is a scientific program to refine
    x-ray refelcetivity, neutron
    reflectivity and surface x-ray
    diffraction data using the differential
    evolution algorithm....
    Download GenX
  • 5
    PSPP is a program for statistical
    analysis of sampled data. It is a free
    replacement for the proprietary program
    SPSS. PSPP has both text-based and
    graphical us...
    Download pspp4windows
  • 6
    Git Extensions
    Git Extensions
    Git Extensions is a standalone UI tool
    for managing Git repositories. It also
    integrates with Windows Explorer and
    Microsoft Visual Studio
    (2015/2017/2019). Th...
    Download Git Extensions
  • More »

Linux commands