Reviews

Review: Perforce

Perforce Release 2004.2
starting at $750/user
Perforce Software
Alameda, California
(510) 864-7400
www.perforce.com

Perforce's self-named product is a source control management system that is more flexible than anything else in its class. Take its cross-platform story, for example: you can run the Perforce client software on dozens of platforms, from BeOS to FreeBSD to OS/2 to Linux to SPARC to Windows and many others. Chances are that there are Perforce builds for your system. The Perforce server runs on Unix, Linux, Mac OSX, and Windows; communication between client and server is pure TCP/IP, so there's no need to mess with sharing files between dissimilar systems.

Or take user interfaces: you can work from the command line, a Web client, a native Windows client, or a GUI client that's designed to look very similar across multiple platforms. Alternatively, you can use Perforce integrated with Visual Studio, Code Warrior, Eclipse, and other IDEs.

In broad outline Perforce will be familiar to anyone who's used a modern SCM system. There's a central server that maintains repositories of files, and clients that each track their own workspace. You can edit files in the workspace and submit changes to the depot. You can also choose whether to allow concurrent development, or lock files when they're checked out. Of course, Perforce keeps close track of versions and conflicts, and includes automatic merge tools for those chases where two people edit the same file simultaneously.

Perforce supports a relatively complex branching model that they refer to as Inter-File Branching (you can read more about this at http://www.perforce.com/perforce/branch.html). For the developer, this boils down to allowing you to branch any subset of files at any time, and later to integrate changes back together.

Want more? There's built-in defect tracking, as well as integration with other defect tracking systems including BugZilla, SourceForge, and TeamTrack. There's support for both binary and text files, with an RCS compatible format for saving text changes. How about a reporting system that lets you extract summary information from the repository? Or a plugin for Microsoft Office, to perform document level SCM operations right from the Office user interface?

SCM is the only thing that Perforce does, and they've been doing it for a long while now. The system is sometimes a bit overwhelming in the number of options that it offers, but there's plenty of good documentation (and training) available to help you over the learning curve. You can also download builds for any supported platform, and you get a perpetual two-user license for free.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.