Feeds

AccuRev streams ahead

Stream-based tool for software configuration management

Securing Web Applications Made Simple and Scalable

Think streams, not files. That is the key concept of AccuRev, a source-code management system which is winning praise for its innovative and effective approach.

"Streams are high-level objects almost like containers for versions of files, but they are the main objects in the system," says vice president of technology Brad Hart . "We don't introduce any overhead when it comes to branching."

This last point is critical.

Hart claims that in other tools "the largest conceptual entity is a file", whereas what matters in business terms is not individual files but entire releases. Branches, tags, and labels deal with the problem to some extent, but AccuRev's hierarchical streams are a more elegant solution.

Each stream is a configuration of the repository, including the set of files checked out to a developer's workspace, and each stream other than the root has a parent. Changes are propagated by promoting them between streams. This begins with the working files, which remain private to an individual developer until they are promoted, though they can first be checked into a personal stream on the server with the Keep command. The system shows its power with operations like reparenting, where a stream or workspace is moved from one parent stream to another.

The stream concept makes AccuRev particularly well suited to environments where there are numerous code branches. Hart says this is common in the financial industry, where each customer may want its own customised build.

One of the challenges of such environments is dealing with repeated merges. Imagine you have a main branch, another for customer A, and another for customer B, all of which are active. At some point you merge some of the revisions back to the main branch, but then continue working on the customised configurations. Later you need to do a second merge. This is likely to be painful unless the tool has a concept of merge history and tracking, so that it remembers how past conflicts were resolved.

Rational's ClearCase has this feature, but Subversion does not, though its developers are working on it for the forthcoming 1.5 release.

AccuRev is built with Java and C++, and installation is straightforward, although the current release needs coaxing to install on Windows Vista (AccuRev claims that this is now fixed), where it tries to use a Unix directory structure that does not exist. It also ships with an old version of the Java runtime that disables Vista's Aero graphics, though fortunately not many corporate developers are using Vista as yet.

AccuRev work is done through a Java GUI client, through a command line interface, or through plug-ins for popular IDEs including Eclipse and Visual Studio. There is no web interface, and no direct integration with LDAP directories or Active Directory, though it is possible to set up directory synchronisation.

This is a tool which ticks most of the source code management boxes, including atomic transactions, support for snapshots which freeze a stream to a particular set of file versions, optional file locking, and good performance over wide area networks. You can also create replica servers which improve performance at remote sites. It is not quite as good as Subversion for offline working, since it does not maintain any local version history, but this is under development. A useful enhancement is that AccuRev has built-in issue tracking, not at a level which competes with specialist tools, but adequate for some scenarios.

An interesting twist is that AccuRev is one of several SCM vendors supporting Eclipse ALF (Application Lifecycle Framework), which aims to create a common API for application lifecycle tools to provide easier integration. ALF is meeting a real need among users who prefer to pick best-of-breed tools from multiple vendors, though several large players are conspicuous by their absence; perhaps they prefer a degree of lock-in.

Case study

John Mears is technical architect at MessageLabs UK. His company has around 50 developers, some of whom work in other countries, and he does mixed development on Linux and Windows. Around three years ago he switched to AccuRev from a mixture of CVS and SourceSafe.

Why not Subversion? "They had fixed a lot of the annoying things with CVS, but I wasn't convinced it was going to be easy to manage many branches at the same time, which is what we do a lot of, and what AccuRev is good at."

Mears is pleased with his choice, though there are niggles. "It would be good to have a web interface," he says. "In fact, I've written a web interface for it, which I make available to other AccuRev customers. Another issue is the upgrades. There seems to be little compatibility between versions of the clients and the server, so you end up doing a flag day upgrade which, if you've got 50 or 60 people, becomes a nuisance." ®

Bridging the IT gap between rising business demands and ageing tools

More from The Register

next story
NO MORE ALL CAPS and other pleasures of Visual Studio 14
Unpicking a packed preview that breaks down ASP.NET
Cheer up, Nokia fans. It can start making mobes again in 18 months
The real winner of the Nokia sale is *drumroll* ... Nokia
Mozilla fixes CRITICAL security holes in Firefox, urges v31 upgrade
Misc memory hazards 'could be exploited' - and guess what, one's a Javascript vuln
Put down that Oracle database patch: It could cost $23,000 per CPU
On-by-default INMEMORY tech a boon for developers ... as long as they can afford it
Google shows off new Chrome OS look
Athena springs full-grown from Chromium project's head
Apple: We'll unleash OS X Yosemite beta on the MASSES on 24 July
Starting today, regular fanbois will be guinea pigs, it tells Reg
HIDDEN packet sniffer spy tech in MILLIONS of iPhones, iPads – expert
Don't panic though – Apple's backdoor is not wide open to all, guru tells us
prev story

Whitepapers

Designing a Defense for Mobile Applications
Learn about the various considerations for defending mobile applications - from the application architecture itself to the myriad testing technologies.
Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Top 8 considerations to enable and simplify mobility
In this whitepaper learn how to successfully add mobile capabilities simply and cost effectively.
Seven Steps to Software Security
Seven practical steps you can begin to take today to secure your applications and prevent the damages a successful cyber-attack can cause.
Boost IT visibility and business value
How building a great service catalog relieves pressure points and demonstrates the value of IT service management.