Perforce Release 2004.2
starting at $750/user
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
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
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.
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.