EMBEDDED SYSTEMS & MICROCONTROLLERS · PAGE 91
Version Control and Build Systems
Never lose working firmware.
Store source in a version-control system and make small, well-described commits so any change can be undone. Tag the exact version that ships.
A build system compiles only what changed and produces the same output each time. Record the compiler version, because different versions can change behaviour.