previous | next
 
home  |  sales  |  customers  |  jobs  |  contact  |  search  
 
 Home 
 Products 
 Customers 
 Comparisons 
      - CVS 
      - Subversion 
      - Perforce 
      - ClearCase 
      - Sun Teamware 
      - VSS 
      - RCS 
 Sales 
 Test drive 
 Company 
 Jobs 
 Support 
 Documentation 
 Search 
 Site Map 
    

Perforce
Perforce is commercial tool similar in design to CVS. For small development efforts, it works as well as CVS for a lot of things and better for some others.
  • Perforce is similar to CVS and shares some of the same problems, such as a central repository, only one repository, and no per work area history. It does have weak rename support and groups changes, but does not have true changeset support.
  • Perforce does not provide per file commentary; only per change set commentary. It's a minor point, but sometimes you want that extra information, it helps the debugging process.
  • Perforce loses information every time there is parallel development because you are forced to merge before you check in if someone else checked in first. The state of your workspace before the merge is lost forever. Another way to say this is that if there is N-way parallel development, Perforce loses N-1 events.
  • Perforce chooses speed over accuracy. The system remembers the set of files you have locked and prompts about only those files at checkin time. If you have added any files to your workspace, Perforce ignores those.
  • Merging in Perforce is primitive at best.
  • Perforce maintains state in a database next to the RCS files. In order for this state to be consistent with the RCS files, you must access the RCS files only through the Perforce daemon. The database is a single point of failure; if it gets corrupted, your source management system does not work. The real problem is that when the database gets corrupted, there is a high chance that you need Perforce to straighten it out.
  • The Perforce daemon is a bottleneck. Long running operations lock out all other users. This isn't a problem with small repositories, only with large ones. Scalability becomes a problem.
  • The database can use a dramatic amount of disk space.
  • Upgrades are not reversible and lock the system for hours.
  • Perforce has an integrity checker but it is only run if you ask for it, i.e., the default is to just hope that the data is correct. That means your data can get silently corrupted and you will never know until you try and roll backwards.
  • The main issues are scaling, reliability, and accuracy. Perforce is marketed as the fast SCM system but it chooses speed over correctness. All systems with centralized repository have scaling problems, that is inherent in the design. Perforce has made an effort to make their database reliable, but even so, it can get corrupted, frequently through no fault on Perforce's part, i.e. a disk goes bad. When that happens, your development stops.
  • Perforce uses the RCS file format with all of the problems that entails.

BitKeeper/Perforce Feature Comparison Matrix

Download BitKeeper/Perforce Feature Comparison matrix (pdf)






Feature BK/Pro Perforce Benefit
Atomic ChangeSets Yes No
  • Every change is a reproducible snap shot
  • Aids in debugging and release management
Graphical checkin tool Yes Weak
  • Graphical tool for file and changeset checkins which promotes more useful comments to speed up development processes and debugging
Dynamic branching Yes No
  • Any workspace can be turned into a branch
  • Advanced planning for branching is not needed
Pro Merge Technology Yes No
  • Most accurate automerge available
  • Only merge each change once
Accurate handling of renames Always Rarely
  • Increased productivity through a well organized source base
Peer-to-peer architecture Yes No
  • Supports any workflow for enhanced quality control
  • Supports the rapid open source style of development
Complete local history Yes No
  • Your developers can keep working even when your server or network doesn't
  • Inherent reliability through replication
True parallel development Yes No
  • Enhanced productivity
  • Faster time to market
Multi-site development True Simulated
  • BitKeeper provides 100% functionality and productivity at all distributed sites
  • Perforce provides partial functionality through a cache
Mobile/Off-network functionality Yes No
  • Increased development productivity by allowing your developers to work while travelling, while at remote locations, while at customer sites, or without a network
Dynamic Licensing Yes No
  • Provides developers the flexibility of checking in from any host or domain and read-only users can access data without tying up a license.
  • This model can save you 25% - 50% of licensing costs
Pre-event triggers Yes Limited
  • Ability to qualify events prior to changes which enhances compliance to your development policies
Post-event triggers Yes Limited
  • Supports notification of events and automated secondary operations which provides easier process management
Replicated repositories Yes No
  • Provides enhanced reliability along with the ability to perform transparent, automatic backups
Automatic integrity checks Yes No
  • Detects corruptions indicating potential hardware and software problems saving time and money associated with unplanned downtime
Accurate recording of all history Yes No
  • Accountability: Easy to find Who did What When
  • Provides a complete picture of your parallel development
  • Speeds up debugging process
Minimal Administration Yes Varies
  • Headcount can be used for doing development rather than upkeep of the SCM system
Minimal hardware requirements Yes Varies
  • No need to purchase additional hardware
  • No requirements for large, expensive server

Perforce is a trademark of Perforce Software, Inc.


Home    Products    How to Buy    Customers    Downloads    Support    Privacy Policy    Bug DB    Site Map    Contact Us

© 1997-2007, BitMover, Inc.