Sponsors

Microsoft


TechWell

We have 2024 guests and 2 members online

Home Product Reviews Perforce 2006

Perforce 2006

E-mail
Written by Robert Cowham   
Tuesday, 31 January 2006 04:24
In typical Perforce fashion, they quietly shipped the second of their usual twice yearly releases out the door over Christmas 2005. Nothing earth shattering in this release, but continued evolution from a strong feature set.

The product has an enviable reputation for rock solid stability and performance. It has a relatively conservative approach to feature implementation on the server ensuring that its architecture remains sound and will continue to perform well even in demanding environments. The client interfaces evolve more rapidly and  continue to improve in terms of ease of use.

Key Features of Perforce are:

Performance, scalability and stability - Perforce is in use in lots of companies with just a few users and yet scales to installations with 2,000+ users against a single server (many household names included). Of course if you are a larger site you need to pay attention to the hardware configuration you are using, but appropriate commodity hardware intelligently configured can be remarkably cheap. Perforce's performance has given it a strong presence in chip design and games development markets where repository sizes can grow to terabytes. Installation is very simple with almost no external dependencies, and the server provides all its functionality with an executable just over 1Mb in size!

There are two types of administration: system administration (keeping the server running) and application administration (user administration and support and process automation). System administration for Perforce is typically very low overhead. Application administration, like any SCM tool, requires well established policies, and a local expert or group prepared to define them, educate users and enforce them. Thus administration will vary according to your requirements: one customer with 1,000+ users has 3 people in the CM team.

Atomic check-ins, branching and change propagation - From its earliest days Perforce has offered atomic check-ins (called changelists, an equivalent term being change-sets). At the time this feature was not common amongst SCM tools although it is pretty much a requirement for serious tools these days. Its branching model is light-weight and very flexible, and over the years Perforce has improved things like common ancestor detection making merging between remotely related branches remarkably easy. The flexibility of the branching model can be a weakness in that it requires planning to ensure that any scheme is going to be manageable in the longer term (but the underlying model is the same as used by Microsoft's new Team Foundation Server). Experienced organisations tend to have a layer of supporting scripts to help manage branch creation and maintenance, and it would be nice to see more of this pulled in to the tool itself.

The scalability and performance of Perforce ensures that practices such as branching for every defect request, or with many task or personal branches, will work even for hundreds or thousands of users (potentially very large numbers of branches). Perforce is also strong at tracking at the fundamentals of change propagation between branches, very useful for scenarios such as ensuring bug fixes are migrated between releases. I look forward to this becoming easier to manage graphically in the future.

Simple defect tracking built in - It has a fairly simple yet effective defect tracking capability built in, and recent server releases have added features for scripting and triggers in this area enabling workflow to be setup. Many companies prefer to use third party defect tracking tools and Perforce integrates well with a good selection of them. When used well, the tracking of defect fix propagation between releases is very strong. As an area for improvement, a graphical workflow definition capability would be a good step forward.

Distributed development - From its earliest releases the performance of the tool made it usable over slow links that brought other tools to their knees. In common with some other tools Perforce now supports remote access using a proxy which caches content locally. This has enabled many companies to work with a single server even with hundreds of developers in offshore centres. The simplicity of this model is a big advantage in terms of co-ordinating multi-site development, and as the world becomes steadily better wired it genrally works well. There is third party support for a continuously updated local read-only server which also caches metadata as well as file content.

GUI Interfaces - the Perforce Visual Client (P4V), the relatively new cross platform GUI ( runs on Windows, Linux, Mac OS X, Solaris and FreeBSD), has prompted a rethink of some interface terms and ways of working making Perforce easier to use for less technical as well as more experienced users. Some of the new features include item previews, and the thumbnail generator and preview option for various graphics formats is very popular in some circles.

With the recent release P4V has effectively taken over from the older Windows-only GUI. Tools such as the graphical revision viewer and the time-lapse view can be very informative.


\"\"
Revision Graph - showing branching history for a file. It would be nice to have an equivalent tool for branches.

 

 

\"\"
Time-lapse View - a very flexible way of showing the history of a file including all code changes.


Extensive tool integrations and automation - Over the years Perforce has acquired a wide variety of tool integrations. All the standard tool IDEs are covered from Eclipse to Visual Studio with many others along the way. There is a Microsoft Office plug-in, a graphics plug-in for applications including Photoshop and Maya and a Windows Explorer plug-in given a nice performance improvement in the latest release.

The ease with which Perforce can be scripted and automated has made it easy for lots of other integrations to be produced. Example interfaces include a COM component, and language-specific API wrappers for Ruby, Python, Perl and PHP among others. The latest server release also supports LDAP authentication, useful for larger organisations.

Top class support - They have always prided themselves on their support and with good reason. It continues to be a major focus of the company and the ability to have questions answered accurately, often within minutes, can significantly raise the bar on your expectations for all vendors you deal with!

Summary

Perforce continues to be a strong contender in the SCM market and it deserves a place on most SCM tool shortlists for evaluation.



Robert Cowham is a CMCrossroads columnist and is the Chair of the CM Specialist Group of the British Computer Society. He has been in software development for over 20 years in roles ranging from programming to project management, and is one of that strange breed of developers who enjoys SCM and the whole subject of improving software development processes. He is also a Perforce Consulting Partner having worked with the tool since 1997. He continues to champion his own personal wish list for new feature development in the product! You can contact him at rc@vaccaperna.co.uk

 

Trackback(0)

Comments (0)add comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Tuesday, 08 August 2006 05:25