ABC of Electronics cosycom.com
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.