Why Use a Version Control System in PCB Design
Version Control Systems (VCS) have been around for many decades within the software world but can be surprisingly new to some folks in the electronics design industry. This article will cover what a VCS is, what it does, and why you should be using one for your PCB design projects.
What is a Version Control System in PCB Design?
A PCB design's 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.
To truly appreciate what a PCB design's version control system offers us, we need to understand the status quo and its limitations. I wish I could say that everyone I’ve met uses some form of VCS for their PCB design projects, but that would be far from the truth. Over two years ago, I wrote about using Git within Altium Designer, and, at the time, it was a relatively new concept to the community. Since then, I have seen an uptick in VCS adoption within Altium Designer, but I still often see what’s described in that article: designing a board, zipping up the package, and emailing it back and forth between teams...within the same company! The classic second scenario I’ve seen that’s touted as the “improved method” is everyone dropping their design package onto a network or cloud-based shared drive. While this is undoubtedly better, it doesn’t enable teams to collaborate with each other truly. Everyone ends up working within their silos and then dumps their final results onto the shared drive. We live in a fast-paced world where we must collaborate by merging conflicts, comparing changes, and commenting in real-time. We simply cannot do PCB design without a version control system these days.
But I’m all on my own: why use version control?
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 PCB design's version control system 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 PCB design's version control system. 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 version control system 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 version control system 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. To understand the stepped-up features in Altium 365 that go above your vanilla VCS, see Using Altium 365 Over Your Vanilla Version Control System.
We have only scratched the surface of what’s possible with Altium Designer on Altium 365. Start your free trial of Altium Designer + Altium 365 today for all of your PCB design's version control system needs.