|
Making sense of a large-scale CVS repository can be challenging to say the least. Hundreds or even thousands of files going back years can hold important information about your development project and trying to get to that information can be a difficult and time-consuming task. For example, trying to find a specific version of a Java class file and understanding how the code has evolved can be similar to looking for a needle in a haystack. Sometimes the information is there, but accessing the history can be a data mining effort most developers just do not have time to do. Cenqua, based in Australia, has taken on the challenge with impressive results and a remarkable product that, based upon customer feedback, should be used by every serious CVS user. FishEye is 100% pure java and designed to run in a server environment, although the product can also run on a Windows PC as well. The primary benefits of FishEye are source code discovery, analysis of meta-data and communication (through RSS feeds). For this article, I have solicited input from several current customers in addition to my own review of the product and have produced some impressive results. Breaking Through the Limitations of CVS FishEye takes CVS to a new level that every developer must consider, especially those working at companies that need to address compliance with Sarbanes-Oxley and other audit control requirements. One of the greatest limitations of CVS is that commits are only atomic at the file level. That is, there is no way to determine which files were checked in together. FishEye breaks through this barrier by analyzing commits and then grouping the files that were checked in together into logical "changesets." This is high on the wish list of most serious CVS users. In a discussion with Matt Quail, Product Architect for FishEye, I asked about Cenqua's choice to initially support only CVS. According to Quail, "We chose CVS as our initial target SCM because it is so widely used, but we fully intend to support other SCMs. In fact, we are close to releasing a beta of FishEye that additionally supports Subversion (SVN). After that we'll look to add support for popular commercial SCMs such as Perforce and ClearCase.” Search Engine Technology for Your Source Code Navigating a large CVS repository can be a daunting task. I have faced situations where versions of source code have literally disappeared from CVS (actually RCS libraries underneath) without a trace. FishEye helps by adding a much needed surveillance technology that provides up-to-date statistics and easy information discovery for your source code repository. FishEye incrementally scans repository content and processes this information using search engine technology. This enables users to easily search based on combinations of author, filenames, commit comments and actual file content with results returned instantly. FishEye also provides a SQL-like query language (called “EyeQL”) which allows up to date queries of source code repositories. For example, to ascertain the revisions checked in by Bob after 1/1/2005 that contain the text "testing fisheye," users could enter the following: select revisions where author = bob and date > 2005-01-01 and content matches "testing fisheye.” ![]() FishEye's EyeQL provides an intuitive and powerful way to search your repository. Customer Comments As I mentioned previously we solicited feedback from several of Cenqua’s customers with pretty impressive results. Their experiences says a great deal about this Australian based software vendor who has been around since 1999 as a consulting firm and in the last few years focused primarily on software tool development. Peter Connolly, AVP Development Environments for CNET Networks, Inc. told us that, “FishEye is exceptionally easy to setup and run” and “the interface is clear and easy to use. I like the option of choosing between browse, changeset and the EyeQL search interfaces. I like the ability to create RSS feeds. This is a natural interface for us to use to feed our own internal build and release management processes.” Sam Berlin, a Software Developer, at Lime Wire LLC., told us, “A great feature is the RSS feed of changesets. We have a system that sends out a email for each CVS commit, but it required us to set up a unique mailing list for each module, and the amount of CVS-spam was very annoying. The RSS feed does a great job, and I've since unsubscribed from our CVS mailing lists and rely solely on FishEye's RSS feed.” Sam went on to say, “Specific features that I like about FishEye include the easy administration and separation of CVS modules. Our main public development is in four modules "core", "gui", "lib", and "tests". However, we also have a bunch of other miscellaneous modules in the same CVS repository. FishEye allows us to separate the modules into different logical repositories -- "limecvs" (our main four modules), "misc" (the miscellaneous modules), and "private" (for internal use).” Chris Morris Senior Developer at eInstruction.com" told me, “Researching the history of a given line or section of code is made easier with FishEye. I can start with the annotated view of the current rev, find the line I'm curious about, click the related rev link to go back to the rev where that line was last changed…” and “Changesets are a big deal. We've built our own code review tracking automation based on the changesets produced by FishEye.” Chris also told us, “The querying of the changesets is a nice feature. I don't use it too often, but if some stray commits build up on a branch or somesuch, it's nice to be able to group all of those together to see what's changed since. RSS feeds are a great way to have a team stay in touch with what's going on in the codebase.” Conclusion The customer base for CVS is certainly huge and, in many ways, CVS is the de-facto standard for source code management. FishEye takes this technology to an impressive new level with a remarkable approach to source code discovery and communication. It’s up to date search engine analysis of all available metadata and ability to automate RSS feeds makes FishEye a must for every serious CVS user. Our solicited feedback from their customer base indicates that this Australian based software vendor has done a great deal to establish good customer relations with an excellent product and strong customer service. Cost For a limited time, FishEye may be purchased for $999 per server which includes 12 months of upgrades and support, starting from the date of purchase Company Contact Cenqua Pty Ltd. Suite 6, 108 Willoughby Rd Crows Nest, NSW, 2065 Sydney, Australia Tel: +61-2-9906-7079 sales@cenqua.com www.cenqua.com Bob Aiello is a Senior Editor for CM Crossroads and an Associate Director at a major financial services firm in NYC, where he has company wide responsibility for Software Configuration and Release Management best practices. Bob is on the Steering Committee of the NYC Software Process Improvement Network (CitySPIN), where he is also the chair of the CM SIG which meets in Midtown NYC. Mr. Aiello has a Masters in Industrial Psychology from NYU and a BS in Computer Science from Hofstra. You can reach Mr. Aiello by email at bob.aiello@cmcrossroads.com
Set as favorite
Bookmark
Email this
Hits: 7811 Trackback(0)Comments (0)
|
| Last Updated on Thursday, 12 January 2006 04:03 |




