My colleagues and I try to follow a pretty normal git development flow: we implement things on temporary branches and do peer-reviewed pull requests to merge those into a main “develop” branch. And after some period of testing and vetting, the “develop” branch is then pulled into a “production” branch.
We still have to be cautious and avoid more than one of us working on the same binary file at the same time, but we’ve been able to work on the same view or script and git was able to merge changes reasonably well.
The resource.json files are driving me nuts, though.
They always conflict, every time we touch anything in a directory, even if the changes in the code.py or view.json or whatever were merged gracefully by git.
I know we could just jump them to a clean-but-mismatched version by using something like git checkout --ours
. But then we will have a commit in our history that if checked out will trigger a gateway to regenerate the resource.json and leave uncommitted files sitting around, which makes subsequent git operations propblematic. So the proper thing to do is to let Ignition re-generate them after resolving the conflict and roll that into the commit.
But I usually have Ignition stopped so it doesn’t freak out on conflict markers in files, which means my merge/rebase process now involves starting and stopping Ignition gateway after every conflict just to re-scan files and re-generate resource.json files.
Does anyone else have a better method of dealing with this? I know the IA team has a plan to let users control when Ignition re-scans the projects directories, which would at least let me keep Ignition running, but that feature isn’t here yet.
I’m mostly just venting, but also adding a little more weight to the feature request to control directory scanning manually.