Eeschema/pcbnew deterministic file structure

I see there have been a few forum and blog posts about this, but I haven’t really found a solution for the behaviour I’d like.

I’m trying to use git to manage my PCB projects but am finding that even on small changes to the file (such as I recently discovered, just changing a resistor value in the schematic) causes eeschema to completely rearrange large sections of the file, making git commits very noisy. Similar effect with Pcbnew.

The author of plotkicadsch comments: “Kicad generally has a nice behavior with respect to version controlling, such as taking care to not upset the structure of a schematic file when a small change is introduced.” but I have not found that to be the case.

Is there a way to get these programs (either built-in, with a plugin or even an external tool that’s run pre-commit) to sort them into some sort of deterministic order?

I’m running 5.1.6 on MacOS.

I sympathise. It also makes doing differences harder. Even though git stores blobs and not deltas as older SCMS did. A canonical order would be good.

This has been fixed in nightly builds and will be part of v6. Unfortunately not for v5.

Ahh, amazing, thanks, I’ll have a look.

Just remember that the nightly builds are unstable. They may crash often etc., although they are in bugfix state now and generally getting better for normal work every day.

Yep, understood. Thanks again :slight_smile: