Perforce - Scalable Enterprise Version Control
Updated November 11, 2015
Perforce - Scalable Enterprise Version Control
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
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.
- 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
- 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
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.