Gurusamy Sarathyis the Director of Language Technologies at ActiveState Corp., Vancouver, Canada.
ActiveState has implemented Perforce as the standard for version control for all projects, including those for products, product documentation, Web sites, internal projects, and even system administration data. Perforce is tightly woven into the company's nightly build and test frameworks on the build farm for all supported platforms.
ActiveState is the leading provider of open source-based programming tools and services for dynamic languages such as Perl, Python, Tcl, PHP, and Ruby. ActiveState solutions, including the award-winning Komodo IDE, provide enterprise-wide deployment of open source programming languages, improved programmer productivity, and seamless integration with other technologies. ActiveState's customers encompass over 70% of the Fortune 500. Over two million developers rely on ActiveState's professional development tools, high-quality language distributions, and enterprise services.
Many of ActiveState's products have a basis in rapidly evolving open source repositories. ActiveState must continually track changes to these repositories, while adding features unique to its branded binaries. This means regularly gathering changes from multiple codelines, integrating, and building them on multiple hardware platforms. In addition, ActiveState has private intellectual property that requires more traditional change management and version control approaches.
The development of so many products for so many platforms in a rapidly growing startup presents a number of technical and management challenges. ActiveState needed a product that was:
- Highly available
- Easy to learn
In late 1998, ActiveState had about six developers and was doing mostly Windows development. But the company was beginning to grow, and felt the need to start developing on other platforms. At the time, the firm's developers were using Microsoft's Visual SourceSafe (VSS) for source code control. Numerous problems made SourceSafe inadequate for ActiveState's demands, including: the product's inability to scale (it would take an entire night to run audits on the database of 15K files); propensity for bugs (nightly audits would routinely crash or show unfixable errors); slow performance (which wasted developer time); poor support for automation (the command line tools were inadequate); no support for remote use via slow network connections; and lack of availability on other platforms.
"I had been using Perforce since early 1997 for the public Perl repository, as well as for several internal projects at my previous job," says Gurusamy Sarathy, ActiveState's director of language technologies and one of the world's preeminent Perl programmers. "I had also used Atria (now Rational), ClearCase and CVS, but appreciated the simplicity, robustness, and performance advantages of Perforce over these other tools."
"Switching to Perforce was a no-brainer," says Sarathy. "To be honest, we didn't do much looking around. Once we settled on Perforce, that was it. We used conversion scripts available at the Perforce Web site to do the database conversion, which involved some 16K files. The conversion took about five hours."
Sarathy and his team had to address several issues among users when they migrated to Perforce. P4Win, the Perforce Windows Client, helped get SourceSafe users accustomed to Perforce. Also, since VSS does branching differently (and poorly), the branching relationships had to be established by hand once the database migration was complete. Sarathy says, "This had the pleasant side effect of forcing a big reorganization and cleanup of the tree while setting up the branching relationships. Users had to be educated on branching policies we were going to use, and how to take advantage of p4 features. The tech notes and documentation on Perforce's site helped a lot."
ActiveState has found Perforce fast, easy to use, and stable. "Perforce has earned my trust primarily because of rock-solid stability," Sarathy says. "We haven't had a single database error/corruption/crash in the two years since we started used it. When mishaps have occurred due to hardware problems or user error, it has been easy to recover from them."
"We've grown to 45 users and 130K files with no noticeable degradation in performance or stability. Perforce is available on virtually any platform we care to be on, and using it remotely, even over slow networks, is a cinch. We've also had great experience with Perforce's technical support. Ultimately, it beats anything else we've used, hands down."