click here to return the the homepage
Description Usage Requirements
Screen Shots Key Bindings Todo List


mcvs.tcl is a graphical front-end for the CVS revision control system.  mcvs.tcl is geared towards making the basic use of CVS very user-friendly, while still allowing for advanced users to operate without being forced to leave the app and open up a shell.  mcvs.tcl has a special feature called "Smart Status" that shows only files that need attention in a module.  Another special feature of mcvs.tcl is a simplified way to handle "binary files".  Additionally, mcvs.tcl has the ability to change themes to allow a number of different look-and-feel options.

Screen Shots

The Main Window.
The Checkout Dialog.
The Import/Export Dialog


There are two main views in mcvs.tcl.  The first is on the left side of the application, which is the tree-based Directory View.  The second is on the right side of the application, which is the File View.  Additionally, there is a Toolbar towards the top of the window and there is also an Output Window in the bottom right of the window.  Also, there are a number of dialogs that support operations such as checking out files, importing and exporting files and expert mode.

It is important to note, when a directory is selected in the Directory View, all Toolbar and menu actions affect that directory.  The active directory or file is indicated by a change in the title of the window.
Directory View

Selecting an item in the Directory View will make that item the operand of all CVS commands.  This will also show the files in the selected directory in the File View.  If this directory has a CVS directory in it, mcvs.tcl will attempt to contact the appropriate CVS repository and, if successful, will show the CVS status of all the files in the selected directory.

A context menu can be posted if a directory is selected with the right mouse button.  This allows direct access to actions also available in the main menu and the Toolbar.

The repository location entry dialog above the directory view is read-only.  It just gives feedback about the repository from which the files currently being browsed are from.
File View

Selecting an item in the File View will make that item the operand of all CVS commands.

A context menu can be posted if an item is selected with the right mouse button.  If an item is under revision control, an appropriate set of operations is available in the context menu.  If the item is not being managed by the revision control system, the only operation available under the context menu will be for adding the file to CVS.

The File View is displayed in a multi-column listview.  The operation of this listview should be relatively familiar.  For instance, columns can be resized and the list can be sorted (and reverse sorted) by clicking on any of the columns (clicking again will reverse sort).
Smart Status

Under normal operation, mcvs.tcl only shows the files from a single directory in the File View.  This is handy, but there is a better way.  By using the context menu in the Directory View, you can select "smart status".  Smart status essentially invokes "cvs -n up" which is a dry run at an update.  mcvs.tcl parses the output of this command and displays it like any other directory full of files in the File View.  The difference from a normal file list is that "smart status" actually displays all files in the directory tree rooted from the directory you invoked "smart status".  Also, "smart status" does not show you up-to-date files... so the signal-to-noise ratio goes way down.
Checkout Dialog

This dialog will allow you to check out any modules available from a repositories modules file.

You can change the repository to be queried in the entry at the top of the dialog.  Then, click the query button to find out what modules are available from the server.  Note, if you are using ssh, pserver or other external client/server mechanisms for CVS that you must properly specify the repository location with this info.

The Checkout Dialog will allow multiple selections of modules.

If you want to check out a module not listed in the modules file, turn on expert mode in mcvs.tcl before invoking the Checkout Dialog.  Then, select anything in the list of available modules and hit the ok button.  The expert mode dialog will appear and you can then explicitly specify the module or modules to check out.  This is admittedly a very lame way to go about doing this.
Binary Files

Using binary files with CVS is sometimes a pain.  It is even more troublesome when dealing with client/server CVS where the cvswrappers is actually ignored.  In order to simplify these issues, mcvs.tcl keeps track of what file types should be treated as binary and automatically tags those files appropriately when importing and adding files.  For the most part, you won't need to do anything to enjoy this feature, except for using a version CVS >= 1.10.

If you need to customize the files that mcvs.tcl treats as binary, you can create a config file in your home directory to control and augment it's behavior.
Import/Export Dialog

These dialogs will allow you to import and export files from a CVS repository.  You should be very familiar with the operation of these commands before using these dialogs.  Consult your CVS documentation before you go screwing up your repository.
Expert Mode

Because mcvs.tcl makes the use of CVS a little more user-friendly, some functionality is of course lost for the power user.  Thus, expert mode was born.

To invoke expert mode, select expert mode in the admin menu in the main window.  Selecting it again will turn off expert mode.

When expert mode is on, every CVS command to be executed will first be shown in a dialog which will allow the command to be edited by hand before it is actually sent to the CVS repository.

If expert mode is not your thing, and you occasionally want to just type a cvs command from scratch, use the menu entry "admin->cvs command line".  This will allow you to type an arbitrary cvs command.  It will use the currently selected directory in the Main Window as the current working directory for the command.
Config File

mcvs.tcl can be configured with the use of a $HOME/mcvscfg.tcl script file.  This is a plain text file interpreted as Tcl code.  The configuration parameters include:
binFilter A list of glob patterns to be used to decide if a file is binary.  This is used for both the CVS import and add commands.
Append to this list to add to the globs, or set it to cancel out its default setting.  Look at the mcvs.tcl script to see the default value.

Theme Support

mcvs.tcl uses pvimgs.tcl to change the theme used by the app.

Command Line Args

mcvs.tcl doesn't take any meaningful command line args at this time.

Key Bindings

Main Window
<Double-Escape> Exit application
<Arrow Keys> Navigate Directory/File View
<Double-Button-1> Select directory in File View
<F5> Refresh File/Directory View (whichever has focus)
<Escape> Cancel dialog
<Return> Finish dialog if an entry widget has focus


Todo List