Our team has a project with three applications for the same micro-controller. Those work together in a greater setup and use some shared libraries. In order to keep things simple, we put everything in one repository at the start.
By now, the project has grown bigger and we frequently run into
- merge conflicts - fixable
- auto-merges which accidentally introduce run time errors - only discovered at live testing.
There seem to be a few solutions around. E.g. submodules or this article, which describes a many branch approach. Unfortunately, most developers on the team are not experienced with git and right no it is not practical to teach them. I.e. simple actions is the maximum to expect (push
, commit
, maybe checkout
). But not feature branches etc.
Is there fast (dirty if it has to) way to prevent destructive run time errors, e.g. from already fixed bugs which are reintroduced due to merging?
Our idea is to create a separate stable branch, maybe even one for each project.
Then, the majority of the team will use main
as a kind of development branch and see no difference. Features which are ready can then be merged into the stable branch(es) by a person who knows what they are doing.
Does this sound like a sensible approach?
If so, are there (known) significant drawbacks to it?