I’ve been a big fan of the Perforce source control management software since my days with Syndeo Systems. (Syndeo is long defunct. Only a few of the Google references to it refer to the company for which I worked.) We set up Perforce as our S.C.M. and loved it. It has some huge pluses over the standard at the time, Microsoft’s SourceSafe. The biggest plus was a great branch and merge paradigm, and atomic changelists. It is also fast.
Anyway, somehow Perforce has talked O’Reilly into publishing a book on Perforce. It’s author is a Vice President with Perforce, so don’t expect an unbiased look at the tool. However, only the preface is a pure marketing pitch. I was expecting something that covered the basics of how to use Perforce and little else. I am pleasantly surprised. Chapters 1 through 5 cover the Perforce basics including undocumented commands. That last emphasized part is great! The undocumented commands aren’t exactly earth-shattering, but they will ease a few of the tasks that have been a pain in the ass in the past. According to Wingerd, these represent either future development or dead past development that they saw no reason to remove. These chapters also put together the sequences of different commands needed to perform some common tasks. Perforce adheres to the Unix model of using small commands that do one thing well, and then chaining them together. So many tasks that people do every day are actually a chained series of Perforce commands. Wingerd does a good job of explaining how to branch and merge in particular.
Chapter 6 is about scripting.
Chapters 7 through 11 are about branch management in a software organization. It mirrors what we put into practice at my job. Kind of nice in the validating way because when we implemented these practices a few years ago, it felt like we were fumbling around in the dark. The answers seemed obvious, but we didn’t have a lot of experience to back up the intuition. Our collective development experience pretty much used SourceSafe and SLM (an internal Microsoft tool), neither of which support very well the kind of best practices recommended here. So it’s nice to see that the obvious answers were correct.
What this book is missing though is extensive practical advice on automation, scripting, and integration with other products. Chapter 6 covers all these and it’s pretty thin. The only integration that seems to be described well is third party merge/compare tools, and that’s done in one of the early chapters. For instance, how could requirements and bug traceability be accomplished through the use of Perforce’s jobs
construct? It’s often a good idea to connect code up to a requirement in a requirements management tool or to a bug in a defect tracking system. In actual practice, I’ve seen this done more through change list descriptions than through more automated methods. A full chapter on advanced review triggers would have been great too.
Overall though, this book is definitely a plus. Not a lot of fluff, and most of it is indeed practical. The branch management advice alone is invaluable. You can get that information elsewhere, but rarely is it separated out so cleanly and understandably.
Title: Practical Perforce
Author: Laura Wingerd
Publisher: O’Reilly
Format: Paperback
Length: 336 p.
Publication date: November 2005
ISBN-10: 0-596-10185-6
Subject: Perforce (Electronic resource)
Subject: Software configuration management
Subject: Computer software — Development
LC classification: QA76.76.C69 W57 2006



