Version Everything, According to Dr.Dobb’s
Here at Perforce, we’ve been talking about versioning everything for a long time, but what does the industry say on the topic? Thanks to relentless pitching that some say borders on stalking from our marketing team, the Editor-in-Chief of Dr.Dobb’s took a look at what it takes to version everything using SCM.
The conclusion Binstock comes to in his article, which you can find at the end of this post, is that he doesn’t think it's possible to put all files in SCM for every project. We respectfully disagree. Our mission behind ‘version everything’ is to solve the problems of untracked, unmanaged variants of content, and the only way to do this is to version everything involved in the creation of that content.
Binstock notes that the key challenge of versioning everything is that most development tools rely on OS libraries and must be installed to run correctly. He acknowledges that this can be solved in part by using a VM, though it does require that the product also be built in VM, which isn’t ideal. While we agree that building inside the VM has its challenges, albeit less so on Linux-based projects, it is still a viable suggestion. As more software is being deployed in VMs, this strategy can save time and money by providing a consistent deployment-ready state of the product throughout the continuous delivery cycle. This helps the development team, who can recreate a product environment from one place (SCM) quickly and reliably. The DevOps team likes it as well because the deployment package is there from the beginning instead of coming late in the continuous delivery cycle.
The part of Binstock’s argument we very much agree with though, is his take on the fact that not all SCM handle large or multiple binaries well. He explains that commercial products excel in this area and names one such an example:
“Perforce, especially, is known for having dedicated a lot of work to fast handling of binary files, especially on large projects.”
While we don’t agree with the first part of his conclusion where he states that it’s impossible to put everything in a VCS, we do agree on the benefits of everyone working from a single source of tools and the security of being able to recreate older versions of products. And we’re grateful for the nod to Perforce. It shows that our mission that the quality of our products and the reputation we have as a company is something we can all be proud of.