The Joy of Moving From ClearCase to AccuRev
I have made a living in the software industry since 1984. Every once in awhile I run across tools that inspire me. AccuRev's source code control system is one of those tools. It was a breath of fresh air moving on from ClearCase to working with AccuRev's SCM tool. My ClearCase and AccuRev experiences are not apples-to-apples--performance characteristics, for instance, are very different between a 7-site ClearCase installation and a single-site AccuRev installation--so for the most part I only discuss comparisons that remain valid in light of these differences. I don't know enough about AccuRev's replication to evaluate it for distributed code bases; take the following comments in a context of small-to-large single-site enterprise applications.
From 2002 to 2005, I used the ClearCase software configuration management tool heavily, consolidating source code repositories onto ClearCase from MKS, RCS, and SCCS. Along the way, I built a task-branching system on top of base ClearCase MultiSite for 150 developers in 7 locations that did essentially what ClearCase UCM now does. I found ClearCase to be very powerful and cool in many ways, but it seems to me that its own success has swamped it with functionality that has severely hamstrung its usability.
In May 2005 I came onto a client site that was on Visual SourceSafe, a client-only tool that was starting to crack under the load. My first project was to migrate a 30-person Windows .Net development team to AccuRev’s SCM tool. I was also tasked with supporting another team already using AccuRev. Although very different, AccuRev was easy to learn and quickly became intuitive. Having never seen AccuRev before, I was able to cut the team over in 4 months. A single 2-hour training session and some follow-up individual hand-holding proved sufficient for folks to become productive. Instant Small-Team Collaboration
AccuRev opened up opportunities for developers that never existed for them in Visual Source Safe (and ClearCase presented similar barriers as VSS). On the first day of going live with AccuRev, team members initiated their own short-lived collaborative sub-streams (a.k.a. "branches") under the main dev stream, allowing them to keep up-to-date with the main stream, while isolating their local changes from the rest of the group. When finished collaborating, they delivered the code to the main stream with a single promote command. ClearCase of course supports task-oriented collaboration with branches and config specs; but imagine just doing it on the first day, with no need for special training, configuration or programming! Visual Config Specs
I also love AccuRev's drag-n-drop streams and workspaces. With ClearCase, I spent hundreds of hours writing a home-grown UCM system to standardize config specs, create views, and manage branching, merging and labeling. A new ClearCase release branch was a laborious, intricate and often hours-long process of creating thousands of labels and branches, blocking development on the source branch while it chugged along. By contrast, in AccuRev a new release stream is instant, and changes are sent to it with a single command--the whole process taking no more than 5 or ten minutes. And development is not put on hold while it happens.
In ClearCase terms, AccuRev's SCM stream hierarchy is a visual representation of all the config specs in the system--but it's much more. ClearCase's version tree browser shows relationships between branches and labels for a single element. AccuRev has a version browser for elements, but it also has a stream browser that shows relationships between config specs as well as changes living at a given config spec. Try moving all elements on a specified branch to a different branch using a ClearCase version browser, or try inserting an additional level of branching! With AccuRev, a new intermediate stream is a near-trivial matter of right-clicking a new stream and dragging the existing stream (or workspace) under the new stream. The pain of ClearCase config specs is a dim memory.
ClearCase was very weak on config spec management. Developers could edit their ClearCase view's config specs, and they often did, resulting in critical code often going to weird places, followed by hours of user-environment debugging and recovery operations. AccuRev stream and workspace configurations are also editable, but in a globally visible and structured context, making support a relative breeze. The built-in auditing is very supportive of support!
Labeling large ClearCase VOBs was very painful--on the order of several hours for 5,000-plus elements (this pain is mitigated somewhat in ClearCase UCM). Thanks to AccuRev's append-only model, AccuRev labels (a.k.a. "snapshots") take 1 or 2 seconds, regardless of repository size. Cost-Effective
As an enterprise SCM solution, AccuRev is very economical. My client's management estimates that AccuRev paid for itself in about 3 months. By contrast, ClearCase required three levels of support inside the organization, besides the developers themselves. Even after normalizing the differences in scale, AccuRev is a great bargain. Low Administrative Overhead
I find that AccuRev administration averages less than 2 hours per month for a repository of some 20,000 elements, 60+ users, a distributed continuous-build system that pulls around 1,000 full-workspace populates/day, ~1,000 changes promoted/day, along with myriad other request types that hit the server.
The append-only repository is rock-solid and can be backed up w/o bringing the server down (as long as the backup doesn't lock any files it's reading). In the 2 years AccuRev’s software configuration management system has been on site, no repository recoveries have been needed--something I couldn't say with ClearCase. Easy Integration With Other Systems
With its comprehensive command-line interface and XML output options, AccuRev easily integrated with my client's open-source build system. We were able to get a fully functioning AccuRev adapter for our continuous-build loop up and running in an afternoon. Solid Support and Upgrades
No tool is perfect, and AccuRev has its share of bugs and growing pains. For instance, drag-n-drop in the stream browser does not work for a handful of customers under certain circumstances, and the handling of overlaps and deep-overlaps is occasionally confusing. 2007-02-07 - Just upgraded to 4.5.1; drag-drop is fixed.
In the context of AccuRev's other qualities, however, these are minor niggles. AccuRev's support model and release model is solid, and issues are quickly diagnosed and addressed. I have upgraded four or five times over the past year and a half and the upgrades have all been stable, with increasingly powerful features. 2007-02-07 - Pass-through streams hosting 4.5.1 cross-links make it incredibly easy to deliver components!
I've found AccuRev tech support to be responsive, helpful and competent with bugs, SCM advice, and especially feature requests--in sharp contrast to ClearCase support. Although ClearCase tech support is responsive and professional, good luck with exerting one iota of influence in ClearCase's bug-fix or development plans!
If you are serious about practical software configuration management, then AccuRev is a smart and easy business decision.
Chris Walquist Lisle, Illinois 20 January 2007 http://walquist.com/articles/20070123.JoyOfMovingFromClearCaseToAccuRev.html