Perforce source control is stable, powerful, and feature rich.
Overall Satisfaction with Perforce
Perforce is the source control management system of choice for our entire organization. We use it to safely version content of all kinds; code, scripts, art, and documentation. It is shared globally across our organization and accessible externally to our product licensees. It has been used for every product we've shipped as well as all our active projects. We make use of all the major features like branching and shelving as well as p4web.
Pros
- Perforce handles code exceptionally fast and provides a deep toolset. The ability to quickly see differences via the revision history, revision graph, and time lapse view are invaluable for tracing differences over time and across branches/integrations.
- Perforce does a decent job of maintaining our security policies across different areas of code. We can block access to various branches and directory structures using the various administration tools available. This ensures the right people have the right access at the right time. We can also temporarily disable check in access and lock down a source tree when necessary.
- The P4 client, P4V, is a clean and intuitive tool. There are multiple ways of viewing the depot with powerful search commands and easy access to the more advanced P4 concepts all from within the GUI. Shelving, merging, integrating, and syncing are all easy to do.
Cons
- P4V, in the interest of stability, seems to have taken a few steps back in its ability to perform asynchronous operations. Once upon a time I was able to sync and perform resolves on code at the same time and now it seems to wait for all operations and does everything much more serially.
- P4VS, the integration with Microsoft Visual Studio, is still fairly new to the product suite. We have very complicated VS projects and it can take some time for P4VS to sync its status with the P4 server. Additionally, there are still a few rough edges in its features, such as the limited history dialog and some crash/instability issues when an automated checkout of file about to be edited doesn't get a response from the server quickly. It is still good to see that they wrote their own tool rather than stick with the antiquated SCC APIs offered by Microsoft.
- If I was being nit picky, I would say it would be nice for P4 to consider integrating more "content" versioning tools for various binary formats. There is plenty "non text" content to be version controlled, and to be able to diff versions right inside P4 would be invaluable.
- Working across multiple workspaces on the same machine can sometimes be difficult when various P4 products are used at the same time (say P4VS, P4V, P4EXP). It would be nice if workspace switching, the P4 env variables, and the various P4.ini settings were easier to reconcile and visualize from within the various client tools.
- Some really advanced/complicated client specs (using ... and * for example) can slow down integrating and other P4V operations.
- While I haven't experienced this directly, it is my understanding that syncing large data across large distances can be slow and that the various proxy tools could use improvement. I do know that various switches/options have been exposed to make various tasks require less data transfer to the client to improve this.
- Perforce helps our licensees and development teams get access to our code base anywhere in the world.
- Our developers have never had to worry about the reliability of our source depot and know that if its checked in, the data is safe.
Using Perforce
300 - All business functions use it in one form or another. Artists, Designers, Programmers all use it. Some documentation is stored there as well for various business functions.
Comments
Please log in to join the conversation