Perforce - Scalable Enterprise Version Control
Updated November 11, 2015

Perforce - Scalable Enterprise Version Control

Anonymous | TrustRadius Reviewer
Score 4 out of 10
Vetted Review
Verified User

Modules Used

  • P4 CLI, P4V GUI, P4Merge

Overall Satisfaction with Perforce

As the primary tool for version control across our organization, Perforce provides an enterprise level solution for the management of our various products and software branches, among other things. Perforce branching, action triggers, locking, and other features make it ideal for the type of work historically done by CDK Global (formerly ADP Dealer Services). It supports the production of highly scalable big data services, agile development of websites and other marketing materials spanning thousands of automotive dealerships, and much more.
  • The branching mechanisms in Perforce allow for an enormous codebase to be duplicated into release versions weekly with little impact upon things such as the speed of queries against the version control.
  • Action triggers permit such things as automated builds of software versions, dynamic messaging when issues are identified either within or prior to a build process, and much more.
  • Locking provides the ability to prevent modifications of stable, tested versions in order to ensure validity when they are released.
  • As new tools like Git enter the market, enterprise solutions like Perforce are often seen as rigid and overly complex.
  • Occasionally, the branching system in Perforce seems to fail to retain proper branching history, making it difficult to track the original source of changes if they were initiated across multiple branching operations.
  • When a change made has inadvertently caused side effects, it can be necessary to back out code changes. This process is difficult to do when the changes needing back-out are spread across multiple changelists for the same set of files. It can be even more difficult if any of those changelists contain files that should not be backed out, though this latter point partly indicates a flaw in the developer's process.
  • In the case of CDK Global, Perforce has done an excellent job of maintaining service levels for clients. This is not in terms of customer service, as much as the operational stability of the marketing materials (websites, services, etc) that are in place as a result of the assets held in Perforce version control.
  • Apache Subversion,Git
Subversion
  • missing many of the features that Perforce provides, but
  • a much more lightweight versioning system
  • with fewer commands, this has a lower barrier to entry
  • like Perforce, has a single, centralized database master
Git
  • similarly has a more limited feature set
  • excels in the realm of rapidly creating and merging feature branches
  • has a concept of origins, but each client has its own full-fledged repository
The difference between Git and Perforce related to centralization is of great interest. This simplifies working on teams that are geographically disparate, whether separated by a few miles or on different sides of the planet (such as the United States West coast and India).

Having a centralized repository in this case would vastly slow down the request/response cycle for repository access, whereas a replicated system like Git keeps the process fast until the developer needs to push to or pull from the origin. Each client also can define its own origin in Git, such that a daisy chain from a given individual to a source of record (or multiple as a form of fallback mechanism) can vastly improve efficiency.
For large-scale codebases with fixed and regular releases that do not follow a continuous delivery paradigm, Perforce is certainly well suited. In projects that are small and distinctly separated from other discrete (though potentially dependent) units, the benefits of the Perforce tool may not be as clear of a victor over other systems.

Using Perforce

The features we have come to rely upon, in combination with the vast history that has already been stored in the Perforce system, will more than likely persist our use of the tool moving forward. Ultimately, however, this is a decision for other members of our team to make for the organization.

Perforce Implementation

This rating is related to setting up an environment from an existing Perforce repository. Initial setup of Perforce as the repository for the company was done by a separate team long prior to my inception.

Perforce Reliability