# cvs(3)

[Home] [Commands] [Variables] [Macro-Dev] [Glossary]

## NAME

cvs - MicroEmacs CVS interface
cvs-setup - MicroEmacs CVS interface setup
cvs-add - MicroEmacs CVS interface - add file
cvs-checkout - MicroEmacs CVS interface - checkout files and directories
cvs-commit - MicroEmacs CVS interface - commit changes
cvs-diff - MicroEmacs CVS interface - diff changes
cvs-gdiff - MicroEmacs CVS interface - graphical diff changes
cvs-log - MicroEmacs CVS interface - log changes
cvs-remove - MicroEmacs CVS interface - remove file
cvs-resolve-conflicts - MicroEmacs CVS interface - resolve conflicts
cvs-state - MicroEmacs CVS interface - list state of directory files
cvs-status - MicroEmacs CVS interface - status of files
cvs-tag - MicroEmacs CVS interface - tag files
cvs-update - MicroEmacs CVS interface - update directory files

## SYNOPSIS

n cvs
cvs-setup

cvs-add
cvs-checkout
cvs-commit
cvs-diff
cvs-gdiff
cvs-log
cvs-remove
cvs-resolve-conflicts
cvs-state
cvs-status
cvs-tag
cvs-update

## DESCRIPTION

The cvs and sub-commands provide MicroEmacs with an interface to cvs(1). CVS is a version control system; using it, you can record the history of your source file modifications. CVS is licensed under the GNU General Public License and is freely available on the Internet, see the documentation provided with CVS for more information on its features and use.

The MicroEmacs cvs command opens up a modified file-browser(3) with an additional "`*cvs-console*`" window. The "`*files*`" window includes additional columns showing the CVS state, revision and repository date. The browser by default opens with 3 windows including a representation of the file tree. When cvs is provided with a numeric argument n of zero (0) then a single window displaying the directory is used only (i.e. 0 cvs)

The functionality of the file-browser is the same as a non-CVS folder with the exception that additional CVS item controls are located in the mouse context menu (opened by clicking the right mouse button in the `*files*` buffer). This menu item opens another sub-menu providing access to the items below. When selecting commands than a pop-up check-box may be displayed which allows options to be selected for the command.

Current State

Checks the state of selected file(s) or directory against the repository. Differences detected are shown in the `*cvs-state*` window. This provides a quick method of determining the working directory state.

The `*cvs-state*` buffer supports some of the same features as a directory listing, the files can be loaded (using `return` or left click on the file name), selected (using space or left mouse button on the left hand edge) and CVS commands executed from the window operate either on the selected files or the listed files if no files are selected. This runs the command "`cvs -nq update <files>`".

Checkout files

Checks out a file or directory from the repository into the current directory. The file or directory is specified by typing the name into a dialog which is opened when this option is selected. This runs the command "`cvs checkout <file>`".

Update files

Updates the currently selected files, files are selected by clicking the left button to the left of the required file name. Multiple files may be selected by 'dragging' a hilight region over the required files. This runs the command "`cvs update <files>`".

Commit files

Commits any changes made to the selected files back to the CVS repository. This runs the command "`cvs commit <files>`". The user is prompted for the message to add on the commit.

Diff files

Displays any differences between the selected files and the CVS repository version in the *cvs-console* window. This runs the command "`cvs diff <files>`".

Log files

Displays the CVS logs for the selected files in the *cvs-console* window. This runs the command "`cvs log <files>`".

Status files

Displays the CVS status for each of the selected files in the *cvs-console* window. This runs the command "`cvs status -v <files>`".

Tag files

Adds, removes or moves a CVS tag on the selected file(s) or directories. A pop-up window is displayed which allows entry of the tag name and define the operation. This runs the command "`cvs tag <files>`".

Add files

Adds the selected files to the CVS repository. Note this command only performs the local add, a CVS commit is required to make the addition permanent. This runs the command "`cvs add <files>`". A pop-up is displayed to allow the user to change the mode of the add to binary or text.

Remove files

This command is deliberately not implemented as its far to dangerous! Instead it opens a dialog informing the user to use the cvs-remove command instead.

Graphical diff

This command opens a gdiff(3) window showing the differences between the currently selected file and the CVS repository version. Note this command only works with a single file.

Resolve conflicts

This command may be used to resolve merge conflicts created by a CVS update operation. The command opens a gdiff(3) window showing the areas of conflict allowing the user to select the correct version and saving the resultant version back to the local file. Note this command only works with a single file.

Clear cvs console

Clears the *cvs-console* buffer.

The cvs-add command adds the current buffers file to the repository. Note that this command only performs the local addition, a CVS commit is required to make the addition permanent.

The cvs-checkout command checks out a file or directory from the repository into the current directory. The user specifies the file on the message line.

The cvs-commit command commits any changes made to the currently buffer's file (including additions) to the repository. The user is prompted for a commit log message.

The cvs-diff command opens a *cvs-diff* window displaying the differences between the current buffer's local file and repository version. If the current buffer is a directory list it will list all the differences found in all files within the directory.

The cvs-gdiff command opens a gdiff(3) window displaying the differences between the current buffer's local file and repository version.

The cvs-log command opens a *cvs-log* window displaying the CVS log of the current buffer's file.

The cvs-remove command removes the current buffer's file from the repository - PLEASE NOTE THIS CAN LEAD TO LOST DATA!!! This command only performs the local removal; as it deletes the buffer and file the cvs-commit command cannot be used to commit the removal to the CVS repository. Instead the main cvs file-browser menu or cvs(1) itself must be used.

The cvs-resolve-conflicts command may be used to resolve any conflicts created by CVS when the current buffer's file is updated. The command opens a gdiff window displaying the areas of conflict, the user may then select the correct version in each case and save the resultant new version over the local file.

The cvs-state command opens a *cvs-state* window listing the state of any file in the current directory which is not up-to-date. Note that unlike most cvs sub commands this command executes over all files in the current buffer's file directory.

The cvs-status command opens a *cvs-state* window and shows the state of the current buffer in the window including the modification state, repository etc.

The cvs-tag command opens a dialog box and allows the user to add, remove or delete a CVS tag.

The cvs-update command updates all files in the current directory, the output being reported to a new *cvs-update* window. Note that unlike most cvs sub commands this command executes over all files in the current buffer's file directory.

## Setup

cvs-setup provides a dialog interface to configure the MicroEmacs CVS interface if required. On a typical system installation then it is sufficient to have $CVSROOT defined in the environment and the CVS tools will operate from this environment variable without any further configuration of MicroEmacs. If MicroEmacs CVS configuration is provided then this will over-ride the environment variable.

cvs-setup may also be accessed from user-setup(3) from the Miscellaneous configuration. The the dialog provides the following configuration controls:

CVS Command Setup

`CVSROOT`

If set, overrides the CVS $CVSROOT environment variable.

`CVS_RSH`

If set, overrides the CVS $CVS_RSH environment variable. rsh.

`CVS Command`

Defines the cvs(1) system command. The default when not defined is cvs.

`Compression`

Sets the compression level to use with all CVS commands.

`Quieter CVS output`

When enabled the `-q` CVS command-line option is used to suppress some of the more verbose print-out.

## CVS File Browser

The CVS File Browser is an extension to the file-browser(3) and shows the state of CVS files in a directory listing.

`Quick browser mode`

When enabled the CVS file browser does not launch a cvs command to determine the current state of all files in the directory, instead it extracts as much information as it can from the local file system, inserting '`Q`'s for information it cannot determine. This is useful when the connection to the server is slow. The full CVS information can be obtained by executing the command cvs-full-reread, typically bound to `C-f5`.

Tool Defaults

The following define the default settings for options used in various CVS commands:

`Recurse into sub-directories`

`Check-out missing directories`

`Prune empty directories`

## NOTES

cvs and sub-commands are macros defined in file `cvs.emf`.

When filtering is enabled in the file browser the filter used by the CVS interface depends on the file browser mode, if Quick browser mode is enabled the same filter is used, but when disabled all files ignored by cvs(1) are also removed by the filter. Use buffer-setup(3) in the buffer to enable/disable the filter.

## SEE ALSO

ClearCase(3), file-browser(3).

(c) Copyright JASSPA 2009
Last Modified: 2009/08/29
Generated On: 2009/10/12

</HMTL>