I actually think Git is probably the least complicated VCS to use these days, because it has so much usage that there are many, many resources to make it easier. Lots of free hosting options (including private ones these days), lots of GUI tools if you don’t like the command line, lots of step-by-step tutorials because every beginner getting into software development must learn Git these days. Hardware developers can ride this wave too.
Sure you might say a different VCS has a “simpler” workflow, but in terms of the ecosystem of tools, tutorials, and hosting, nothing comes close.
I did not want to start discussion about pros and cons of git and other VCS systems… All I am trying to say is that if you are using no VCS - which is probably the case of the OP - it is really easy to use git only for keeping history of your work…
That is not true. They can be used but it may not be optimal… And it all depends of the format of the data. And even when treating the files as binary, there is still a lot of features that can be used: changelog, multiple remote repositories, branches, submodules (very useful for keeping your library of “vetoed” components), automation, … The only downside is that it is not able to merge files automagically and you need to do merging manually. But there are tools like git-diff that helps…
Agreed totally. I think many people get hung up on the idea that VCS doesn’t work on binary data (it does!) or that being able to diff and merge your board/schematic in a text editor is super important (it’s usually not, especially when only one person is working on the design).
You are talking about using VCS in a multiuser environment… that is completely different than what am I talking about… git can be very helpful even for a solo designer. Or uf you have multiple people working on different aspects of the project. I am working with 3 other people and we use git as central repository. It works fine because we do different things that do not conflict much but we can all benefit from central versioned repository.
OK, I started with conversion of .kicad_sym files - I was so dumb to create a new symbol for 44-pin device in Kicad 5.99 I can read kicad_sym files OK and very close (3-4 hours) to generating old style .lib/.dcm pair from them. It is small-ish Python script, around 300 lines so far. We’ll see how it goes. New format is a bit illogical in some places, redundant in others, but definitely better than the old one. I think JSON would be a better representation for object structure than S-expressions, but I realize the decision was made long ago.