From Wikipedia, the free encyclopedia
Accurev is a commercial Software Configuration Management (SCM) solution developed by Accurev, Inc. Founded by current CTO and architect Damon Poole in 1998, the company is based in Lexington, MA, USA. The initial release of Accurev 1.0 was made in 2002. The key Accurev differentiator is that it focuses using the SCM solution to help manage development processes in an organization rather than on traditional revision control.
Streams
In contrast to most SCM solutions, AccuRev does not use the concepts of branches or labels. Instead, Accurev prefers the use of the metaphors of streams and snapshots.[1][2][3]
Source code files live in the streams and changes flow down through the hierarchy in which the streams are organized. Streams are first class objects that can easily be graphically visualized and manipulated by developers to change the behavior of the system without requiring administrative user intervention. This level of user empowerment is one of the most unusual features in Accurev. It is also possible to crosslink the contents of a stream to another stream, thus making component-based development possible.
* Dynamic streams are typically used to isolate project-level work effort, much the way that branches are used most other SCM solutions. * Static (immutable) streams or Snapshots are often used to implement baselines for organization-level work, an activity typically performed using labels in other SCM solutions. * Private Workspace streams are where the user makes their day-to-day actual changes. These changes are tracked by the Accurev but are not visible to anyone else until the user chooses to promote the change to the workspace's parent stream.
TimeSafe
Accurev is designed around the TimeSafe principle. TimeSafe is the concept that a source control system must be able to unwind from the current state of the world and show users the exact state it was in at any point in the past in an effortless manner. Accurev accomplishes this by ensuring that all operations are performed as atomic transactions with fine grained time tracking and global transaction numbers. Because files are not identified by path name, but by a global identity number, TimeSafe allows elements to undergo renaming refactoring without jeopardizing the history of the element.[4]
Change packages
Accurev supports a method of managing changes as atomic units. By specifying the same issue number when promoting different changes, the changes will be grouped together into a single change package that can then be manipulate by issue number. Changes can then be moved through the stream hierarchies in an atomic manner - if any piece of the change package were to cause the promotion to fail, no part of the changes will be taken. This atomic nature keeps incomplete code sets from polluting a stream.
Comparing, merging and refactoring
The Accurev user interface provides both a command line interface and a rich Java GUI. The command line interface has options to output its data in XML format for those who prefer that style output.
Among the functionality provided in the interfaces are the ability to difference at many different levels - by files, by stream, or even by Change Package. Users may then elect to perform merges that consider not just the current state of the two elements in question, but with a tool that is aware of prior versions of the element and finds the last common ancestor to help simplify the job.
Similarly users can use the Version Browser to visualize the changes that files have undergone over time from the perspective of what streams and workspaces the file was modified by in a single screen. Additionally the Annotatation Viewer, like the "blame" function in classical SCM tools, allows users to see the last change made to each line of a file, when that change was made, who made it, and the transaction number (commit identifier).
Accurev supplies full support for moving, renaming and deleting files and directories while preserving their history. This frees developers to be able to conduct refactorings that rename elements without concern for losing vital information about the root of changes to the code they work on.
Architecture
Accurev uses a client/server based architecture. Communication is performed via TCP/IP using an XML based protocol for actions, and streaming for file transfers.
AccuBridge SDK
Accurev includes an SDK for building integrations. [5] The SDK allows developers to write their own integrations using either a JavaAPI or Perl.
Accurev have used the SDK to implement integrations with a number of popular Integrated development environment and Issue tracking tools. [6]
AccuWork
Accurerv also provides an integrated Issue tracking system called AccuWork. AccuWork is backed by a proprietary database, and is customizable via forms in the Accurev GUI.
Platform support
Accurev supports both clients and servers on Windows, Solaris, Linux, AIX, HP-UX and Mac OS-X. The web interface is supported on Windows and Linux.
Awards
Dr. Dobb's Journal has twice honored Accurev with Jolt and Productivity Awards in 2005[7], and again 2007.[8]. In 2008 Accurev was also named as a finalist for the Jolt Award.[9]