Perforce users switch to AccuRev
Metta Technology
Development Environment
-
AccuRev version: Enterprise Edition
-
Server Platform: Windows 2003
-
Windows XP and Linux
- Development Sites: California, Texas, India
Metta Technology, headquartered in Silicon Valley, is developing a Multimedia System-On-a-Chip solution that will fundamentally transform the Consumer Electronics industry. Metta's founding team has a stellar track record in creating leading consumer electronics System-on-a-Chip and software products that have been deployed by a number of the world's leading OEMs.
Overview
When a group of software engineers who had worked at several leading Silicon Valley companies moved to the startup, Metta Technology, they abandoned their familiar software configuration management tool, Perforce, and started fresh.Branch and label issues
Faced with rapidly changing business requirements, a distributed development team, and intense time-to-market demands, the Metta Technology software development team found that Perforce did not meet their requirements. The branch and label style of Perforce and VSS was too restrictive for our purposes," said Rajgopal Narayan, Software Architect at Metta. From our experience with Perforce at previous companies, we had found that we were prone to code check-ins breaking builds and the need for frequent branches to manage stability. When you're using a"Creating releases is much easier than with Perforce"
tool like Perforce, developers are always working at the 'tip' of the project - checking in and checking out code from a common area and this is prone to instability. While some of this can be circumvented by created per user branches, this approach involved complex merging rules and makes it very difficult to have multiple points of integration."
Narayan noted that, when working with traditional SCM systems scarce resources often had to be taken away from development work and assigned the task of finding out why a build broke, why the code that worked two weeks ago no longer worked, and which check-in broke what. "Of course," Narayan said, "you can say that developers have to test thoroughly before check-in. But working on the tip means that until development is frozen, and developers test their changes against all others, there is no guarantee that the project is in a known state. The main trunk of the development tree is always unstable."
Finding a better tool
When a former colleague strongly recommended AccuRev and its innovative stream-based architecture to replace Perforce, the team at Metta began an extensive evaluation of AccuRev and several other software configuration management tools.After evaluating CVS, VSS and Perforce, the Metta team found that the AccuRev stream-based architecture eliminated the issues associated with Perforce and other traditional tools. "We chose AccuRev over Perforce, because its stream based approach allowed us to best implement our development and release process which involves guaranteeing the quality of our software integration areas," Narayan stated. "The stream based approach also allowed us to change the rules of integration without impacting any developer.
Bye-bye Branching
"Now we've moved away from branching," noted Narayan. "In AccuRev, right out of the box, each developer has their own private workspace. So when they check-in they do not break the integration area. It's only when they 'Promote' changes up the development stream do they go into a common integration area." Before using the AccuRev Promote command, developers at Metta 'Update' their workspaces with the latest promoted code from other developers. They then test their new code against all these changes. Once all is well, they proceed to Promote their new code, which is then available to all others for testing. "Creating releases in AccuRev is nothing more than creating snapshots of a stream at a given point in time," stated Narayan. "It's much easier than with Perforce."Using AccuRev software, the Metta team has developed an automated process of propagating fixes to integration areas only if they pass build and acceptance tests. "We could have achieved the same effect with Perforce using multiple branches and branch specifications," stated Narayan. "But merging between branches is nowhere as natural or easy an operation as Promote is in AccuRev." In fact, Perforce recommends against branching, in their white paper entitled High-level Best Practices in Software Configuration Management, their recommendation is "Branch only when necessary."
"In AccuRev you just drag and drop developer workspaces into a new stream and nobody is aware that you've made the change"