Using Git to manage multiple devices
My company GardenSpace is building an IoT device. Click the link if you want to find out more.
Essentially, we have a few prototypes ready and want to test them with a few very early stage customers. These prototypes are all slightly different, due to manufacturing differences, but more importantly the use cases we want to test are different per customer. Something I’m pleased with is how we are managing the software installations for each device using git.
For each individual prototype, we have a branch named devices/<device-name>, containing code and configuration for that individual prototype. That is literally all there is to it. It means that on my dev computer I can always view exactly what software and configuration is on each device, and make individual changes to each one, even if that is just changing configuration files. We can view change history for an individual device through git log. Updates to multiple devices is done by changing one device and then cherry-picking the changesets across to the other device branches. There is no access to our source repository from the devices, as updates are distributed by a git push to the appropriate device. It is simple, and simple is good.
