A.3. Unix and Linux Clients
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.kde.org. 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, in order to notify other developers when you intend to edit a file.
Cervisia has two main sections in its display screen, shown in Figure A-9. 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.
Figure A-9. The Cervisia CVS client
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 that resulted from the merge.
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.
Figure A-10. The Pharmacy CVS client
tkCVS is available from http://www.twobarleycorns.net/tkcvs.html. 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. Clicking the "go up" button 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 additional options within the dialog.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 window.
Figure A-11. The tkCVS main window