What is OCamlcvs ?

OCamlcvs is a graphical front end for the CVS configuration management utility. It displays the files and directories handled by CVS and offers CVS functionalities through menus. OCamlcvs can also show differences between two revisions, and a merge assistant can be used to resolve conflicts.

OCamlcvs comes with a library which can be used to manipulate CVS handled files in other applications, like in some views in Cameleon.

Invocation and usage

You launch OCamlcvs with the following command:

ocamlcvs.{x,byte} [options] directory [directory2 [directory3 ...]]

Every directory you give on the command line will be a root in the directory box, on the left part of the main window. If you do not give any directory, the current working directory will be the only root.

When OCamlcvs is launched, the main window appears, with the directory trees on the left, and the file view on the right. The file view shows the files handled by CVS in the selected directory.

The "CVS" menu offers commands to perform on the selected directory or the selected files. These commands are also available throught contextual menus, when you click with the right button on a directory or a file.

The files in the file view are displayed in different colors, according to their state (Up-to-date, Locally modified, ...).

You can customize the CVS commands that OCamlcvs launches, through your ~/.ocamlcvsrc file. Each line of this file must have the following syntax:


For example, to make OCamlcvs pass options to the "cvs update" command, use the following line:

update :-d -P -A

The commands which can be parametrized are "add", "commit", "remove", "status", "update".

Please note that you should not use options which modify the output of the CVS command, since this output is parsed by OCamlcvs.

Note: By default, the "update" command is used with the "-d" option, and the "status" command is always used with the "-l" option.

The library

Some parts of OCamlcvs can be used as a library, by including the ocamlcvs.cm[x]a file. The reference documentation of this library can be browsed here.