Using Git to manage multiple devices

Luke Worth
Aug 24, 2017 · 1 min read

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.

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade