Justin Gibson, Designsensory’s quality and support technical manager, was gracious enough to explain the ins and outs of Version Control Systems. Read on to find out what a VCS is, why you should care, and why it’s good for Designsensory and our clients.
Simply put, a Version Control System (VCS), also known as Source Code Management (SCM) or Revision Control System (RCS), is a way to track files over time and view who made the changes and what the changes were. The VCS helps developers make the behind-the-scenes magic happen without worry of losing their work or overwriting something that they may need back. There are a few VCS software options out there. DS uses one called “Git.”
So, how does it work? In Microsoft Word speak, it’s similar to hitting the "save as" button for every change in the project. The VCS constantly creates a new “save point” as coders work on it, without killing the old file. Think about a presentation you've worked on. You might have saved each new file with an altered, descriptive name. If you shared the file to be edited by others, you would hope they saved under a new name so you knew which was the most recent/relevant. And then the challenge arose: which file name ending with “final” or “latest” was really the final or latest? Or, heavens forbid, what if you needed to then add changes to that so-called “final” file? It's a system that made liars of us all.
Writing code doesn't so much resemble a linear progression as a fractal phenomenon. Coding projects tend to be much, much larger and more complex than the average presentation or business proposal, so manually tracking each change becomes almost impossible. And managing this with multiple coders simultaneously working? Forget it.
The VCS makes it simpler to do a long list of project-related tasks:
It’s a tool that simplifies the tracking part of a project. It’s the kind of thing that makes coders wonder how in the world they ever got along without it.
VCS also helps check you as you go. If two coders write conflicting changes in the project, the VCS will flag it, which prevents mistakes and glitches. There are other ways to tag and make coding notes in the project through VCS.
VCS is great for a team of coders, but it also works well for personal coding projects. It protects you against erasing hours (or days!) of work in one Mountain Dew-fueled session of coding madness.
There you have it! VCS demystified for the technical non-expert.