What is a Version Control System?
A version control system is used to store files and keep revision history. If you wrote a document, released it, and made some changes along the way, you’d like to keep track of what those changes were and when they happened, right? A VCS does exactly that for both individuals and teams. Users will “commit” or update their changes and then push them to a server. That server will then track all the files that changed when it happened and any other metadata provided by the user (e.g., comments). This now gives us a history to go back and look at who did what and when. This is especially helpful when changes occur within a team that must be undone or reviewed. Concerning PCB design specifically, a version control system, such as the one provided by Altium 365, will track all the changes within your PCB project, from component parameter updates to massive route changes within your PCB layout.
But I’m All On My Own
A lot of folks out there do design on their own and don’t feel the necessity to use a VCS. I, personally, have been using some form of a VCS since I first started programming and doing PCB design. I did this primarily for one reason: Trust.
I did not trust my hard drive not to fail.
I did not trust my ability to remember to back up my work every time I made a monumental change.
I did not trust that I would remember the details between each revision.
If you mitigated these problems with your process, then congratulations, you have successfully implemented your VCS! If not, then you’re like everyone else and probably should be using some VCS - even for yourself. If you ever do bring in other people into your team, having the VCS in place makes it easier to integrate them.
What a VCS Gives Us
When we discuss implementing a VCS, such as Subversion, Git, or Altium 365, we think about revision schemes and storage solutions. These are the two major benefits of using any VCS. A VCS will provide us with a commit history and a location (usually on a remote server) to store all those files to act as a backup. For some, this solution may be good enough, but for most users today, especially working collaboratively with other remote users, the baseline VCS isn’t good enough. In Using Altium 365 Over Your Vanilla Version Control System, we will cover the concepts and tools needed for modern-day collaboration that go above and beyond what’s found in a typical VCS.
This article reviewed what a VCS is, what it does, and why you should be using one with your PCB design projects. We went through some examples of what PCB design looks like without a VCS and the limitations that go with it. We gave a brief description of what’s provided in a standard VCS and introduced the idea of moving to a more advanced solution such as Altium 365