Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News FishEye 1.2: Enhancing Version Control

FishEye 1.2: Enhancing Version Control

Cenqua has released FishEye 1.2, a commercial version control exploration tool supporting CVS and Subversion. The new version improves Subversion support, adds new visualizations, email feeds, user preferences, and administration features. InfoQ talked with Pete Moore of Cenqua about the new release.

The conversation started by discussing the history of FishEye. Moore stated that FishEye started as a part of their Crucible code review tool. They needed a durable way to reference assets under source control. The Java component that became FishEye was developed to solve need and shown to a few people including Atlassian's Mike Cannon-Brookes who commented "we'd buy this as it". Everyone that viewed the component responded that it was a product in its own right. As a result Crucible was put on hold and FishEye was born.

In terms of how customers are using FishEye Moore responded:

FishEye is about saving developers a few minutes every hour rather than big bang savings. We have had a few customers tell us that the visibility provided by FishEye, particularly RSS feeds, drastically changed their culture. For instance taking more care creating logical commits, writing meaningful commit messages, and generally more interest in other peoples code. One customer in particular told the story of a pretty serious bug being picked up in an inline diff just before a public release.

Cenqua also offers free FishEye hosting for projects in conjunction with Contegix.

It has been pretty well received. We use a lot of open source software ourselves, so we are more than happy to contribute something back. We now have about about 60 CVS project and even a couple of SVN projects. We can't mention FishEye hosting without a nod to the lads and lasses at Contegix who co-sponsor and provide such excellent support.
One of the more unique features of FishEye is the ability to query version control systems using a SQL like syntax called EyeQL. Moore elaborated:

EyeQL is the kind of feature that proves FishEye is driven by developers not marketers. It lets you write arbitrary complex queries that are really clumsy to do with a search form. It provides SQL like clauses with some syntactic sugar. Say you want a list of the tests you have modified between your "1.1" and "1.2" releases, you write:

select revisions from /your/module/
where (
path like "**/*" and
between tags (RELEASE_1.2, RELEASE_1.1]
and author = scott
return path
This all gets that much more useful because you can do these queries via FishEye's API. A nice example of the integration possibilities using the API is the FishEye Plugin for Jira.

EyeQL like almost everything in FishEye is intended to be hackable, you can generate a URL in a build script or use CSV results as the source in an Excel spreadsheet. A few lines of your favorite scripting language will give you a command line repository grep.

Next Moore commented on some of the new feature version 1.2. Under the hood indexing and caching have been reworked allowing more features to easily be added in the future. Subtle use of Ajax has improved perceived page render times. Support for custom authentication plugins was also added due to customer requests.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Free Hosting for SourceForge (and anyone else) too!

    by Pete Moore,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I just wanted to point out that we (Contegix and Cenqua) host FishEye for a hundred odd SourceForge projects and a few others too. See if you want yours added.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p