TMate – new look at the good old CVS

TMate in action.

To demonstrate TMate in action, I will take a typical project, configure TMate to track changes in this project and let you see what kind of help you get from TMate. I will use IDEA 4.5.3 and latest version of TMate available in the IDEA plug-in repository.

Installing TMate is very easy, so easy that I won't even describe it in this article. You may find complete installation instructions at TMate documentation page. (Here I may add that it took me around a minute to install TMate with IDEA Plug-in Manager.)

As a typical project that all of you have access to, I will take Jakarta Tomcat that is hosted in the Apache Software Foundation CVS repository. That repository is open for anonymous access and this is enough for TMate. As soon as TMate is installed, it will remind you (with the modeless feedback of course) to configure the TMate web application. In TMate Server configuration, I created a single component named “Tomcat” and filled it with the six modules that I've found in ASF CVS repository.

After applying the new configuration, TMate Server indexed all changes in selected modules and I had to wait no more than three minutes (cool result I suppose, but it depends on a connection speed of course). Of course when TMate server was busy indexing changes nothing prevents me from working in IDEA with an opened project – TMate Server runs in a separate JDK and may run on a different computer as well. TMate server is highly optimized to work fast and with the minimum possible memory footprint – as a good team member that doesn't require others' attention, it requires minimum user and system resources.

So, five minutes after installing TMate, I got a better understanding of what is going on in Jakarta Tomcat project:

TMate Tool Window Figure 2. TMate Tool Window

The above screenshot demonstrates the main TMate view – an Outlook style tool window with extremely customizable layout. It reuses the time-proven email client mental model, so that there is no need to learn new things. Every modification, like a letter, has date, author and subject - commit message. TMate even marks new modifications as “unread”, so that a single glance at TMate window will let you know whether there are new changes or not.

By default TMate displays changes for the last month only, to save memory at runtime and network bandwidth, but it is easy to change or remove this limit in TMate's connection configuration:

limit tooltip Figure 3.

When creating TMate Server configuration, I didn't have a Tomcat project checked out, so now TMate politely suggests me to check out the configured modules. It takes literally two clicks not only to get Tomcat sources from the CVS, but also to configure project modules corresponding to the CVS ones:

checkout tooltip Figure 4.
page 2 of 3