There are all sorts of vanilla version control systems (VCS) out there that people have been using with their PCB design software. As discussed in Why Use a Version Control System, we looked at different options ranging from local hard drive storage to sophisticated online revisioning systems. In this article, we will be reviewing the differences between a vanilla version control system and Altium 365.
We need to first understand what we’re actually getting when we set up a vanilla version control system. As discussed in Why Use a Version Control System, we’re getting revision history (including file storage) at a bare minimum. Hopefully, we’ll be getting some sort of meaningful documentation (in the form of comments) for every commit as well. Using a VCS for the above-mentioned reasons not only helps ourselves/the team but also our company overall. Consider a production environment where QA needs to track down a specific change from a specific date and time. How about disaster recovery when someone’s hard drive fails but is relieved to find out that their files are backed up on a server? What about working on different PCs at different times?
Using a vanilla version control system should be the baseline, or entry point, for all PCB design projects. Over the years that I’ve been using various Altium version control systems, I found that all the tools lacked a few key features needed for true ECAD collaboration.
These features are:
These features that had been lacking in a vanilla version control system started to roll out with the introduction of Altium 365. Now all these features are available to all Altium 365 users. Let’s review each one to understand how Altium 365 meets each need.
Seamless integration within the tool: Not everyone is familiar with Git Bash or SourceTree nor do they want to be. Moving from network drives to VCS can be complicated enough. Putting all the details in the background makes that transition a lot easier. Altium 365 has a VCS built in without you ever noticing. For example, in Figure 1 you will see the option to “Make Project Available Online.” What that’s really doing under the hood is initializing a local Git repository, committing, and pushing the changes to a newly created remote repository. In Figure 2, simply clicking on “Save to Server” uploads your design to the server (after requesting you to input your comments). In the Git ecosystem, this is known as commit and push.
Figure 1: Putting a project under version control
Figure 2: Committing your changes and pushing them to the server
Comments: One tool needed for collaboration is the ability to share notes in near real-time. Printing PDFs on a schematic and marking them up works but having a mechanism to document these notations within the design software levels it up. The use of comments in Altium 365 does exactly this.
Figure 3: Commenting directly on the design
Built-in compare tools: One major benefit to using a VCS is the ability to compare revisions against one another. With code, using a diff tool is straightforward and simple because we’re just comparing text. Trying to compare schematics or layouts can be really complicated. Altium 365 has added this ability to compare schematics and layouts within the Altium 365 ecosystem. While Comparing schematics within Altium Designer using an external VCS is supported the Altium 365 comparison tool is more up-to-date and native within the tool. With the project history feature it’s extremely easy to pick out specific commits and compare them right then and there:
Figure 4: Project history with comparison option
Figure 5: Schematic Compare feature within Altium 365
Component libraries with versioning: If I had to play favorites with features this one takes the win, bar none. The component library piece puts it together nicely but the revision history of components makes it a slam dunk. Altium 365 has a VCS that’s dedicated to components and models, not designs, which is a big leap forward for integrated ECAD systems (versus an external PLM). This not only gives the librarian the ability to track revisions of library components but also exposes component history to users. It allows users to stay with older versions to update to the latest with a click of a button.
Figure 6: Revision history for components
In this article, we reviewed the deficits of a vanilla version control system and compared it to the features offered by Altium 365. After understanding these features, we can see how they integrate into our workflow and how necessary they are for a collaborative, VCS-based workflow. Start your free trial of Altium Designer + Altium 365 today.