BESSY

tkCVS - a GUI for the CVS Version Control System



site map


Overview

tkCVS is a Tcl/Tk based GUI for the CVS version control system. It supports most of the CVS functions - even complex ones - in a very comprehensive, easy-to-handle way.

You will like this tool.

Especially the tkdiff utility, which can be used independently as a graphical version of diff.

tkCVS and tkdiff are taken from the public domain (see the tkCVS homepage for details). This is no EPICS code, there is no warranty, we will not be able to give reasonable support beyond making it work for our purposes. Sorry.

Here are some screen shots that might give you an impression of how tkCVS is used and what it does look like. (Clicking the thumbnails will get you full size images.)

Main window
This one is pointing from my workstation to libCom in the APS repository of base - tkCVS works transparently with client/server CVS connections.
Main window
Log window
Shows a graphical representation of the known versions as a version tree. Revisions may be selected for diffing/merging with mouse buttons. Differences between two selected versions may be displayed using tkdiff or merged into the main trunk by clicking a button.
Log window
tkdiff window
The graphical enhanced version of diff. Differences between two versions are marked in blue. User may scroll either file or both (synchronously). BTW: Ignores whitespace.
Log window
Report window
Reports show the known modules in a repository or under a certain directory in a repository.
Log window

Prerequisites

tkCVS and tkdiff should run with virtually any Tcl/Tk version. We are using it with tcl-7.4/tk-4.1, it seems to run under tcl-7.6/tk-4.2 as well as tcl/tk-8.0 (which has not been thoroughfully tested). The bin directory for wish should be in your path.

Location

tkCVS and tkdiff are available as module tkCVS within the EPICS unbundled part of the APS repository.

Those of you that do not have remote CVS access to the APS repository may download a GNUzip'd tar until there's a decent way to download stuff from te APS.

Additions to the modules File

There are two types of special lines that can be added to the CVS modules file to make the modules appear neatly in the tkCVS Module browser:
#D[tab]directory[tab]directory description
#M[tab]module[tab]module description
where
Module
is a named collection of source code. Usually one directory (and its underlying structure) in the repository, but can be any number of directories, files or other modules. (See cvs doc "The modules file".)
Directory
is a name of a repository directory that contains modules. tkCVS uses this to group things in the Module browser. E.g. the "unbundled" directory in the APS repository would have a directory entry, whereas all the modules contained in "unbundled" would have module entries.

Known Bugs

  • When using tkCVS to access a remote repository, it will still read the local modules file.
    Workaround: Set the environment variable CVSROOT to point to the remote repository (usually setenv CVSROOT `cat CVS/Root` will do).


Last modified: Fri Dec 11 15:37:08 1998   Maintained by: Ralph Lange <lange@bessy.de>
BESSY