In any design work it is a VII (Very Important Idea) to…
Establish a version identifier
Keep it up to date.
You should be able to look at any drawing, any instance of the thing you created and immediately know what version it is.
In the world of KiCad, at the very least, a shared version ID should appear on the schematic, the artwork for the PCB, and on the PCB itself.
The designer should change the version ID from time to time… but that should only entail working with one edit box. When what is in it, the change should propagate across the project, with no further steps to be executed.
I haven't got a PERFECT solution for KiCad yet, but the following suffices for me for now….
===
I've created a tweaked "no pin or pad" component and footprint. We'll call it VersLab, for "version label". (you can do this with anything… a rogue resistor will suffice. (It doesn't have to be connected to anything.
Part of the "price" of this is that you have to show your components' references on you finished PCB.
What I do is….
While in eeSchema, I add a VersLab component to the board, and edit the "reference" property. It must be made something with no spaces, ending in a digit.
I then….
Start here…
Create (first pass) or edit the schematic, with eeSchema, being sure to
have a VersLab component on it. Revise the component's reference field from time to time
(Re)generate (with eeSchema) the netlist
Re-run cvPCB
— Assign a footprint to the "new" component
Go to pcbNew.
— Delete the "version" component currently on it.
— Re-read netlist
— Move the version component to the right place.. again.
Repeat those steps (from Start Here) until the board is as you would like it!
===
When I asked how to do this at forum.kicad.info I was advised that a script was the answer… and maybe it is. I just haven't used scripting much, wanted an answer I could understand!