Overall Satisfaction with Perforce
Being a large company that spans many continents, and having merged with other companies in the past, we have many different groups who've decided on how they develop and store data all on their own. Because of these seemingly independent choices, we've adopted the use of various revision control packages, including Perforce, as well as the popular host of other options, such as Git and SVN. Each package brings advantages as well as hindrances, from the very easy to get start but not as well supported nor portable SVN, to the very portable yet hard to work with and get going Git; and finally Perforce, a sort of in-between: easy to get started and pull the files you want, yet difficult to perform more complicated tasks such as branching and integrating. Supporting a rich GUI for most tasks, as well as a command-line interface for automated or more complicated tasks, Perforce can find favor with users of varying need and technical proficiency.
- Perforce has a feature rich GUI making it somewhat easy to find files, and historical changes, as well as utility features to better visualize changes over time.
- The concept of change lists, client specs, and branches is unique to a large extent, and adds value in high customization for each user.
- Perforce is well supported, and has plenty of information on use both officially, and through other user experience as documented on the web.
- Perforce tends to feel backwards in how it approaches certain tasks, like branching and integrating - even once you figure out how it wants you to perform these tasks, you will likely forget when it comes around to the next time you need to do them again.
- Perforce has a higher price tag, comparatively.
- Perforce make some tasks very easy, and yet other tasks very difficult - it doesn't always seem to have found its target user's proficiency.
- Client specs allow high customization in what your view of the repo looks like.
- Integrating and branching is very difficult. I've been one of the main people in performing this task as it takes a great deal of technical proficiency, and I seem to have to re-learn how to perform these tasks every time.
- Perforce feels like a ecosystem, a complete solution. It requires you to learn its speak, and order of operation, however, it comes with solutions for every possible task you'd need to perform, and is highly script-able when you want to further customize.
Perforce has more features than SVN. However even the simpler tasks in SVN require a degree more technical aptitude with Perforce. Git offers most of the same features, however most of these are only really supported via the command-line in Git, where as most tasks can be performed through Perforce's GUI. Perforce is much more expensive than the other two.
We have a need to consolidate into a single package, and have such a large variety of technical proficiency among our users that Perforce seems less suitable. Many would like to remain using it, however, even those who use Perforce are the minority, and are often limited to our development teams.
The most important question to answer when choosing between Perforce and other [version control] packages is how technically proficient your users will be. Most developers can easily get the file they need, while some will want more specific file sets and will need some assistance or documentation to get their client spec just the way they want. For managers, who tend to be less technically on average, they will probably need much more help up front and over time. And for either of these groups, certain tasks will become difficult, however Perforce is processional and robust, and those who have the time and patience will come to appreciate the added power at their fingertips.
Simple tasks and setups are pretty straight forward, more complicated tasks are extremely complicated compared to other packages. Perforce's GUI and Command-Line tools are easy to use, and clean, which helps to limit confusion when you know what you are trying to accomplish - the knowing isn't always obvious, however, and for more complicated tasks, you will likely need outside help.
Feel confident using
Difficult to use
Requires technical support
Slow to learn
- Perforce is easy to install, and in the case you are not creating complicated client specs, easy to get the files you need.
- Branching and integration of other branches is extremely complicated, and feels like it moves backwards.
- The software, GUI and commandline interface, are feature rich and relatively straightforward to use, as long as you know what you are trying to use.