I have several git repositories that are hosted on GitHub where the code is meant to control some specific piece of experimental hardware. So I end up with this situation a lot:
- Myself and some others have personal clones/forks of the repository for development work on our laptops.
- The workstation attached to the experimental hardware has a clone of the repository that we use for debugging and experimental work.
Ideally, all of the development would be done on our laptops and the workstation copy would be read-only, but that just doesn't work. No matter how hard you try, there are always bugs that need to be worked out right on the experimental workstation. It then gets tricky because, say, I might have been the one to clone the repository because I was the one that set it up, but maybe my colleague sits down to work with the hardware and has to make some changes. Then when he commits and pushes, it looks like it came from me. It's not terrible, but it just doesn't feel fright. I think ideally I'd like to be able to use forks and pull requests to force a certain amount of code review.
My question is, does anyone else have experience with this kind of workflow? How did you manage it? Or maybe someone has a good suggestion on how to manage it?
We don't typically use separate user accounts on the experimental workstation because too much of the set up is hardware-specific. Rather, the workstation just has a "lab" login that everyone uses.
One thought I had was to create a GitHub account for the lab, use that on the workstations, and count on everyone to sign their commits. (We already have a lab "organization" account, I mean an actual account that can create/commit to repos.)