You probably don’t want to hear this (most people don’t), but git easily does this for you. (Note that I’m talking about git, not Github.)
-
In your kicad project directory, just do
git init. This creates a repository that stores all your project versions. -
Add the project files you want to keep track of. For kicad, there’s really only three you need:
git add myproj.pro myproj.sch myproj.kicad_pcb. -
Store the current state of your project:
git commit -a -m "Some message about this version".
That’s all you need to do to setup versioning. Then whenever you have a version you want to save, run the command git commit -a -m "A message about this version". If you also want to give the snapshot an easy-to-remember name, you can use the command git tag my_version_tag. Then if you ever want to return to that version, use the command git checkout my_version_tag. And if you want to see the history of your project, use git log.
I’ve seen plenty of tools that provide some form of “archiving”. They’re pitiful when compared to using any modern versioning tool like git or Mercurial. If the tool builders were smart, they’d just provide a button you could press to execute the commands I showed above.