CVS is native to the Unix and Linux operating systems; consequently, there are no line-ending or capitalization issues. The standard, command-line client is intended for use with Unix and Linux, but there is also a wide variety of graphical CVS clients available for Unix and Linux systems.
Cervisia is available from http://cervisia.sourceforge.net/. It requires the QT and KDE libraries, but it runs on Gnome and other graphical environments if the QT and KDE libraries are available.
Cervisia provides a configurable list of frequently used CVS repositories, and configurable key bindings for common commands. Cervisia supports the commit, import, and update commands, as well as the tagging and watching sets of commands. One particularly useful setting is the option to run cvs edit automatically, to notify other developers when you intend to edit a file.
Cervisia has two main sections in its display screen, shown in Figure A-8. The upper section lists files and directories, and the lower section displays the output of the CVS commands that Cervisia executes for you. Right-click on a file in the upper section to open a menu with options to open the file in an editor, commit a changed file, add a file, remove a file, or run a diff over two revisions of a file.
The Resolve menu option, which you can access by right-clicking the mouse, supports automatic conflict resolution. When you invoke automatic conflict resolution, Cervisia displays both files, as well as the merged version of the two files. Cervisia then allows you to choose from several methods for handling any conflicts as a result of the merge.
LinCVS is available from http://www.lincvs.org/. It requires the QT toolkit, but it runs in most graphic environments.
Start using LinCVS by selecting the "Add to workbench" option under the Projects menu and choosing a top-level directory above at least one of your sandboxes. LinCVS searches the directory and determines which files are controlled by CVS. It then adds those files to the workbench, which is a directory tree in the left window. The workbench is updated automatically on a periodic basis with a configurable timeout. You can add multiple directories to your workbench.
Figure A-9 shows the LinCVS display. The upper-right window contains the files in the active directory; double-clicking on a file opens it in an editor. The lower-right window displays CVS command output, though output for some of the commands is also displayed in a dialog.
Pharmacy is available from http://pharmacy.sourceforge.net/. It requires the Gnome libraries, but runs in almost any graphic environment.
The upper-left window is a directory tree that supports multiple repositories. The upper-right window displays files. The lower window is a console that also provides other tools. The console is a full command-line system, and it also displays command output. Figure A-10 shows the Pharmacy windows.
tkCVS is available from http://tkcvs.sourceforge.net/. It requires the Tcl/Tk libraries and works in most graphic environments.
tkCVS provides most CVS commands. It opens in your home directory and displays files and directories in the main window, with the last modification date to the right if a file or directory is not part of a sandbox. When the current working directory is a sandbox, the date, status, revision, and editors are displayed to the right of the filenames. Sandbox directories have a red "CVS" label on their folders.
Double-clicking on a filename opens an editor, as does selecting the file and clicking the Edit button. Double-clicking on a directory moves you into that directory. Double-clicking the ".." directory takes you back to the parent directory.
Commands are available from buttons at the bottom of the window or menus in the menu bar at the top. Some commands display a dialog and have further options within the dialog. The menus can be torn off and placed in convenient areas of your desktop. The results of a diff command are displayed side-by-side in a dialog window. diff, annotate, and log dialogs are searchable, and the color-coded annotation screen is helpful. Figure A-11 shows the tkCVS main windows.