Revision control for PCB design

Thread Starter


Joined May 19, 2021
How do I properly maintain revision history for schematic and PCB design on Kicad or Eagle PCB. I have only worked on PCB designs locally, I would like to learn how to maintain a github repo for hardware designs?


Joined Jan 30, 2016
There isn't an easy solution for difference & merge in Eagle or KiCAD or most other schematic capture/PCB layout packages. I normally just spin off a new copy into another subdirectory for a major change or take a local copy before changing anything. I believe only Altium has such a feature.

Deleted member 115935

Joined Dec 31, 1969
Version control as use din software which is "text based" is unusual in drawing packages

We use version control as a "referance" / "golden good" keeper.
i.e. we check in regularly, work in progress,
so at any time we can go back to a known state,


Joined Jan 30, 2016
Version control as used in software which is "text based" is unusual in drawing packages
Yes, I've seen it done in some CAD packages, most notably the online package OnShape and the cloud version of SolidWorks which support versioning at the project/object level but its relatively lightweight. It doesn't try to resolve the complexities of widget A integrating with widget B and versioning of the 'interface' which is open-ended and nebulous unlike in code where a rigidly defined API or a class definition for instance can be versioned independently of the underlying functional code and of the calling code.

I'd imagine that versioning of a schematic and then versioning of a component, its symbol, footprint and usage rules are more akin to code but would need a greater exposure of the internal structures to integrate version control any more fine grained than manually-versioning the top-level schematic and/or PCB layout files at a subdirectory level.