Update Sept. 2003 - After using perforce for 3 1/2 years I have found it to be very reliable, easy to maintain and has a great support system, both through Perforce and an active mail list supported by friendly and knowledgeable users. I highly recommend Perforce for anybody that is looking for a good source control management system.
This is a quick comparison of Perforce, CVS, and Clear Case I did for iPass Inc. in Feburary 2000. We where using CVS but where having problems. Branching was not working, and we where having performance issues. An NT server was already ordered when I started, so what was selected needed to run on NT. (I brought up that I could load Linux or FreeBSD, but was quickly labeled a Unix bigot. Perforce runs nicely on NT so everything worked out) I narrowed down the selections to these three based on my own experiences, and what other engineers had used. I had not used Perforce before, but had used Clear Case, PVCS, Microsoft Source Safe and CVS. Here are the results:
Perforce | CVS | ClearCase | |
Cost | $600 per seat. This includes $120 per seat for one year of support.
20 x $600 = $12,000
Support is also available through online sources, mail lists other users web sites. |
CVS is free. Support is available through online sources, mail lists, and Cyclic Software (Now Sourcegear). Cost of support through Cyclic is $6000 for 1 year and 20 users. Support is only for servers running on Solaris or Redhat, they do not support NT servers. CVS will cost more to maintain in "man-hours". | Clearcase Perforce's base price is 1/5th that of ClearCase. Extra hardware would be needed to run, and companies usually have a ClearCase Admin, adding to the cost. |
Installation and Setup (On an NT Server) |
Installation is performed by a custom installer by Perforce. | Installation of server requires CVS and third party patches to run. The installation is a manual process. | Clearcase requires a lot of setup and installtion work to get started. VOB and Views must be defined, usually requiring months of work to get started and working correctly. |
Architecture | Perforce uses its own Client/Server architecture for access. | CVS is a wrapper for RCS. Connection to the server is done in several different ways, but generally require a login process, ssh, rsh ... | Uses its own client/server architure for access. |
Platforms | Perforce clients and servers are available for all platforms supported by iPass except no server is available for Mac. | CVS clients are available for all platforms supported by iPass. CVS server is available on all Unix platforms. To run on NT third party patches are needed. | Servers for Solaris and NT. Clients are not available for all iPass platforms: Mac, FreeBSD, OSF/1. |
Speed | Perforce uses its own client/server architecture between the users and the server, providing for faster access. | CVS is a wrapper for RCS. When you initiate a login through CVS, you do so over a shell login (for example). This translate into slower access. It also translates into more administration time in setting up users. | Clearcase uses views to access the data. These views can be very slow to access, which slows down the build time and edit/checking time. |
Conversion | A perl script is avaiable that extracts the metadata (history) and imports it into the Perforce server. | Unix to NT - unknown | Clearcase has a tool to extract the CVS data. |
Other Benifits of Perforce:
Perforce is a fully supported product. If there is a problem, there is someone we can ask. CVS requires you to ask the community which may work most of the time, but ultimately it is up to the user.
Perforce has atomic change transactions. Perforce intrinsically supports submitting a group of files as a single logical transaction. This will help track checkins, and what files are associated with a bug.
Perforce has better change logs for file tracking. This is useful for when you want to know what files have been changed between releases, and what those changes are.
To get CVS to run on new repository machine (NT), third party patches are required. These may work, but are harder to setup. This setup of using these patches is not very well documented. I have experimented, but was unable to run it successful.
Perforce fully supports windows. CVS does not support NT server with out patches from other groups. WinCVS is also not a direct CVS project, but maintained by another small group of people. Perforce has a vested interest in maintaining there window products. Development for WinCVS or the NT server patches could end with futher CVS versions, or lag behind and not support all CVS commands.
Perforce not only has a windows client, but also has a MS Visual C (MSDEV) plugin allowing for access to Perforce within MSDEV (like checkins etc).
Perforce will be easier to maintain, and despite the initial price tag, should provide comparable total cost of ownership to CVS and be cheaper then Clear Case.