Revert Project to Older Version from the Nightlys

I blew it.
I downloaded and built the nightly’s and then opened and SAVED some real work projects…Now, I cannot downgrade KiCad and open the newly modified files to open in 5.1.6 or 5.99.0…They’ll only open on MASTER.

Is there a utility or script or just a list of differences between file formats that I can use to reconvert these files back to something that 5.1.6 or 5.99.0 will be able to open?

I noticed that there’s a new Backup folder that the nightly’s must have made, but even the backed up project copies in there won’t open with anything but the KiCad master branch.

How do I recover these files to be compatible again with the stable 5.1.6 or even the more risky but fun 5.99.0?

The master branch and the nightly builds are almost one and the same – the nightly builds are built once a day from the master branch. Either one is outdated if the designs can’t be opened with both of them, except in rare situations when a new file format feature has just been added between two nightly builds in some commit.

1 Like

That’s what I’m saying…I’m way past that point of inflection between file formats…I jumped far ahead to a new file format and KiCad nightly converted it for me…But, there’s a lot of bugs, it’s not great for production work, it’s only for testing, etc…But, now, I can’t go back to a more stable version because it has no future knowledge about how the nightly’s changed the file format.

I need to revert the files to the old format of 5.99.0 or 5.1.6.

OK, now I understand. The version number 5.99.0 is for every commit between pre-v6 development until 6.0.0rc1. You want to go back to a point where 5.99 still used the old format. Unfortunately it’s not possible if the files have been converted, the old files aren’t there anymore and you didn’t have backups.

With the layout files it may be possible to edit them manually to remove new features which are incompatible with 5.1. The original schematic file should be left from the moment of the conversion. The old one has .sch ending, the new one has .kicad_sch.

1 Like

Alright, that’s sounding more possible.

Is there a resource that anyone is aware of that outlines the formatting differences between old and new that I can use as a reference when editing the PCB files in Vim?

I don’t know of any. You can try to open the file with 5.1, see the error message and try to find out for each case, and/or give it here for us to look.

1 Like

Depending on the version of 5.99 you have used you may be able to remove the stack up and zone info by editing a copy of your .kicad_pcb file in proper text editor and get it back into 5.1.x Unfortunately more recent versions of the development nightly may not be amenable to such simple editing…

Time to investigate version control software …

2 Likes

Thats what I did when I had to go back from pre-5 to 4.x .
I simply deleted everything from the existing files (with a Texteditor) the old Version complained about during opening. In the end I had to reassign some footprints but this was easier than try to understand all differences…

V5 is more of a V4++, similar structure with a few new features, so fairly easy to strip out the extras
V6 is a far bigger change in file structure

1 Like

More specifically and to avoid confusion: the schematic and symbol file formats have been completely changed in 5.99. The layout and footprint files have only added features compared to v5.

What about the “Generate Netlist”? Is that still there in 5.99?

Yes, of course. External netlist is needed for external tools. In-KiCad communication is done with internal netlist mechanism without the file, as it already was in v5. Netlist generation has been removed from other UI places than File menu.

So can V5.1 open a V5.99 generated netlist? It sounds like it should be able to

Wouldn’t it be great to be able to save in the old format? This is a frequent user error - I came here to search solution for this also. And it will only be worse with a release 6, people will not jump to new version overnight and this will fracture the community and reduce interoperability. The code handling old projects, schematics, and symbols is still there, why not add “Save As…” old format?

The symbol library structure is also new, so simply saving as a V5.1 schematic is not easy.

I agree that this is going to be a nightmare for careless users. A few extra “do you really want to do this” warnings may be needed

That has been discussed. I agree it would be good. However, there are a couple of reasons why it won’t be done:

  1. The developers want to spend their time with other, more productive features.
  2. The backwards conversion is lossy.
  3. Coding the conversion for the schematic would be a huge amount of work.
  4. When 6.0 is released there’s less need for backconversion because 6.0 is (more or less) stable and expected to be used instead of 5.

Note and remember that

the original v5 schematic file isn’t deleted, it’s kept there!!!


The problem of loosing data by careless opening and saving is true for the layout.

The layout part is relatively easy to convert. When the file format is frozen it should be pretty easy to write a converter as a python script. It would require mostly regular expression syntax to remove the parts not supported in v5. The schematic conversion is difficult, requiring “real” coding and intimate knowledge of two file formats.

The problem with all warnings is that people don’t read them.

You could make a wish to the issue database for clear and prominent warnings. I’ll give a thumb up.

1 Like

I know it won’t help you now but it is a really good idea to use git for your projects. It can help you a lot if you learn how to use it but even without knowing it you can keep a history of your work with these simple steps:

  1. install git
  2. go to your project directory a do git init - this will create a .git direcotry in your project and git will keep all its data in there
  3. git add * will add all the files to be monitored by git
  4. git commit -a -m “commit message” will “snapshot” all the files and store them in a commit (internally it stores only changed files)
  5. do steps 3+4 as often as you want, ideally with a descriptive message
  6. if you mess up, you can extract any of the commits into a separate directory

git can do much more for you, there are great GUI (tortoisegit for windows) for it, etc. but this is as simple as it gets and it is really an invaluable tool…

Only a few days ago

1 Like

That is a really nice improvement… I know that there has been a lot of work done on improving file formats so that they play nicer with git and other version control systems…
But I hear all the time that git is too complex and complicated and hard to learn and it is made for programming and … so I am trying to convince people that it can be really easy for basic history keeping and it can save a lot of headaches…

Using git with KiCad has been discussed here many times. I use it and many others use it. As a VCS it’s unnecessarily complicated for KiCad (or any other CAD) because most of the modern VCS features can’t be used with 2D or 3D data. Any simple centralized VCS would do. But git is good to know anyways.