Have you ever tried to recreate an old family recipe, handed down across generations? I tried to do something like this once with a baklava recipe I found in the annals of my grandmother’s basement. The handwriting was barely legible – the ingredient list was clear enough, but the quantities were faded off the page. When I asked my grandmother about the recipe, what her memory had not forgotten left me with a casual shrug: “Eh,” she said nonchalantly. “Add some sugar. And chocolate. Then layer the dough.” Uhhhhh… thanks?
What is version control?
Now imagine doing this with the code that you – and a large team of geographically diverse developers – write together over time. Code is written to establish software, add new features and fix bugs – it’s often a living, breathing “thing” that changes over time and at the hands of multiple developers simultaneously – just like a family recipe handed down over generations.
You need a way to keep track of the changes and the versions, and you do this with version control – sometimes also called revision control. Version control keeps track of source code, file sets and whole projects as developers work on the code, often collaboratively, over time. The discipline of version control is what keeps documentation current. It’s also instrumental in assisting in identifying bugs, an effort that can require developers to run different versions of software to detect the bug and attribute it to its rightful coding.
How do I do version control?
You can generally handle version control in one of two ways. There’s the age-old “do nothing” approach to version control that keeps developers controlling in a manual process of uniformly and progressively naming files as they are worked on some kind of a shared drive. This tends to be quite clunky, though, and tedious – imagine a gaggle of developers working over many months across many geographies and trying to keep straight who changed what and when.
Alternatively, you can employ some kind of a tool that plugs into your integrated development environment (IDE) to handle the task. These plugins are the 3rd party tools – they’re not you, they’re not the IDE’s native toolset, but rather are additional tools that help you and jive with your IDE of choice.
Who are the players in version control software?
There is a litany of players in this space. We commonly see ERP system users depend on tools that are free with a client-server repository. These are:
There is also a commercial product that we see once in awhile, Polytron Version Control System (PVCS) by Serena Software. In addition to version control, this more robust product includes functionality as well to address project management, address process flow & design, and automate the bug fix process.
How common is this?
Version control software has roots 25+ years old and is used by Fortune 100 companies and small-to-medium businesses alike. Anyone developing code is prone to the pains of version control; it doesn’t matter how large or small your business is.
Ok, you caught me. I use 3rd party version control tools and I want to manage change of my Peoplesoft or E-Business environment. So what?
Our customers have been asking for us to make their first choice in change management (Quest’s Stat product) work with their first choice in 3rd party version control tools. Well, in Stat 5.6 we do just that. With Stat 5.6, users can connect to 3rd party tools like CVS, SVN and PCVS to extract the code developed with these tools and migrate that code as desired – think point-and-shoot rather than cut-and-paste. You can migrate code without changing your familiar version control tool, and you can get an audit trail as an added means of confidence in the process. For more information on Stat 5.6 features, check out Fernando Volonte’s previous post, ‘Stat version 5.6.0 – Release Preview’.
As always, I welcome your comments on the topics discussed on the Stat Community.