Sponsors

Microsoft


TechWell

We have 1888 guests and 3 members online

Home Product Reviews AccuRev Streams to Success

AccuRev Streams to Success

E-mail
Written by Mike Gunderloy   
Monday, 08 November 2004 16:00

As you undoubtedly know, there are a lot of software configuration management products out there. When you’re deciding which CM package to use, you need to think hard about the unique value that each one can bring to your workplace. With AccuRev, though, it doesn’t take much thinking to find the value: AccuRev’s stream-based architecture is just plain different from, and more powerful than, the file and branch architecture that you’ll find in many other products. While this means that it can take longer to pick up how AccuRev works, in the long run you’ll find a product that offers immense flexibility for fitting CM to the way that you work instead of vice versa.

To get a feel for AccuRev, you need to understand the difference between a depot, a stream, and a workspace:
  • A depot is a special database that contains versions of files and tracking related to those versions (such as which directory they’re in or what they’re named). The AccuRev server is the only program to touch your depots; it uses TCP/IP to communicate with the AccuRev clients.
  • A stream is a particular configuration of a depot that changes over time. Typical streams might be "version 2 development" or "version 1.1 QA." Streams can be arranged into a hierarchy of arbitrary depth.
  • A workspace is a directory tree that instantiates a stream. When you’re working with files, you’re always working in a workspace, which will be a child of some stream.


AccuRev provides its own graphical file explorer for working with files in a workspace. Within this interface the developer will only need four commands to do most of their day to day work. At any time you can Keep a file, which stores a new version of the file in the stream that’s backing the workspace. Conversely, you can Update from the stream into the workspace. You can Promote a version into a parent stream, and you can use a typical three-way Merge to resolve conflicts.

Streams, and the way that AccuRev handles them, bring a bunch of benefits to configuration management. For starters, a built-in stream browser lets you see graphically the relationship between the various streams. Not only that, it allows you to rearrange the stream hierarchy and to promote file changes between any arbitrary set of streams. Streams are also a more powerful concept in general than branches. Consider the typical pattern of making changes in a development branch, then checking them in a QA branch, then placing them in a release branch. AccuRev can use its knowledge of the stream hierarchy to do the bookkeeping involved for you, rather than making you remember which branch is used for what and which versions are in each. When you need to merge a file, AccuRev always knows which ancestor you should be merging against.

AccuRev Streams to Success
AccuRev’s Stream Browser provides a graphical way to track and manipulate software configurations


AccuRev implements atomic transactions throughout, and it never loses any history. You can reconstruct the exact set of file versions, and the exact arrangement of their directories, at any point in time. This makes it easy to go back to an old release if you ever need to (an operation that is surprisingly difficult in some other products that don’t keep a perfect history). Version 3.5 adds the ability to track Change Packages (file versions that fix a particular bug or implement a particular feature) with the same fidelity. This improves the integration of AccuRev and its own Dispatch issue-tracking system, or external issue-tracking systems. Version 3.5 also introduces include and exclude filters for streams. For example, you could take the entire development stream and create a child stream containing only *.doc and *.xml files for the user assistance group to edit. Of course these rules are also versioned.

Overall, I’m quite impressed by AccuRev. Not only does the system work well and mirror a variety of actual development packages, but the company has clearly worked hard on usability. For example, if you’re looking at the history of a particular file (also presented as a graphical tree), you can diff any two versions by right-clicking on one, selecting Diff, and then clicking on the other. The client-server code seems to be well-optimized as well, and because it’s by default an edit-merge-continue product it tends not to get in the way of the developer (you can also configure exclusive file locking if you prefer to work in a check-out/check-in world).

AccuRev works with Windows, Linux, HP-UX, AIX, FreeBSD, Solaris, and some other operating systems, with both graphical and command-line clients. It also integrates with the Microsoft SCC API as well as other IDEs including Eclipse and Sun Java Studio. You can sign up for a free 2-user evaluation version at the AccuRev Web site.


Costs:
Customers may choose AccuRev Professional for $750 or AccuRev Enterprise for $1,495. AccuRev Professional does not support Change Packages or Unlimited Stream Depth. According to AccuRev Inc. over 75% of customers choose Enterprise.

Company Contact:
AccuRev, Inc.
10 Maguire Road
Suite 212
Lexington, MA 02421
Phone: +1 (781)-861-8700

info-request@accurev.com
http://www.accurev.com



Mike Gunderloy, MCSE, MCSD .NET, MCDBA is an independent software consultant and author working in eastern Washington. He's the editor of ADT Magazine's Developer Central newsletter and the online Daily Grind (www.larkware.com), and the author of numerous books and articles. You can reach him at MikeG1@larkfarm.com.



Edited by Patrick Egan (Tue Nov 16 2004 09:55 AM)

Trackback(0)

Comments (0)add comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Tuesday, 10 January 2006 06:32