When getting started with Perforce or expanding its scope within an enterprise, it’s a good time to establish a formal, documented Perforce Directory Standard (PDS). The directory structure and branching strategy are intimately related with Perforce. Branching strategy and product life cycle are inherently related. A well-designed directory structure intuitively conveys information about product life cycle, the release process, and branching strategy. Further, it simplifies management of the flow of change. There’s a lot going on there!
There is a fairly canned process I follow to help a customer define and capture their branching strategy. First, I try to get everyone speaking the same language, defining terms such as “branching patterns,” “branch,” “merge down,” “copy up,” etc. Next, I provide a brief overview of common branching patterns, to give an idea of the molds available.
Then we discuss either their current processes or the process they’d like to evolve to. By the end of that discussion, we have an initial idea of which branching patterns apply to their situation. Most often I see new samples of familiar patterns. In rare cases, I come across a customer with an environment that needs a new mold. But I’ve been at this game awhile, and those are few and far between these days. If you think you have one of those environments and would like to share, by all means, please do!
In addition to their intrinsic value, a PDS is handy to have in the event of a Configuration Management audit. Trying to climb the SEI CMMI scale? Being audited during contractual due diligence? This helps!
The PDS stands on its own, and can be incorporated into a large document hierarchy. It’s best deployed as a living document that evolves as your organization’s needs change.
Download it yourself and give it a try!
Disclaimer: It's forever a work in progress, and your mileage may vary as to its applicability to your environment.
A version of this article first appeared in p4 blog.
Known to colleagues as “The ClearCase Guy” in the mid-late '90s, Tom Tyler discovered Perforce while doing an SCM tools evaluation in 1999. He has been a Perforce enthusiast since then. Tom worked as an independent consultant, and later joined Perforce’s Consulting Services team. Tom loves to talk about branching strategies, ClearCase to Perforce migrations, and all things Perforce.