Source Control (Jun 28)

The source code for our new accounting software is in a thousand-odd text files. We write code there, fix any compiler errors, run the app, then repeat until the interface looks good and works properly. Our staff can chug along in that cycle for weeks on end, and get a lot done.

Our code sits on top of many, many thousands of files from other people. It takes several apps to manage the project. Those use smaller apps. There are settings and kits, libraries and preferences and details. The whole thing is a precarious pile. Updates often break something and require time to fix. Preparing a new machine for duty takes at least a day or two.

The past week was mostly spent on hardware and software setup for two more Macs and a new Windows machine. We need to build and test for three OS types (Mac Intel, Mac ARM, Windows). We also need to run both Qt5 and Qt6 for a while. It’s a lot of permutations.

Source control helps keep everything in sync. It stores a repository on each computer, and pushes changes to and from a master copy that’s in the cloud. It’s a good backup system that gives a snapshot of the project at each save, with notes on what was added/fixed/removed.

Until early 2022, we used SourceTree (desktop app) for local backups, and BitBucket (online site) for the shared repository. Then they released an update that didn’t work on Windows, so we switched to GitHub (desktop app and online). It worked OK, but wasn’t as good at reloading past versions. Sometimes we need that to find out when a hidden bug appeared. Then we can compare the bad code to the previous day’s save, and locate the problem more easily.

Since we were already installing and tweaking hardware, software and tools, it made sense to try SourceTree/BitBucket again for source control. It works OK on Windows now. Merging in the GitHub saves was a challenge, and I think some history got lost. Worst case, we have a slightly harder time tracking down an old bug, some day.

The bad news is, there are two new compilers at work, and both give new warnings and error messages. Our staff is resolving them now. The good news is that keeping compilers happy is worth the effort. They catch subtle problems that may turn into real bugs later.

Dennis Kolva
Programming Director
TurtleSoft.com

 

Author: Dennis Kolva

Programming Director for Turtle Creek Software. Design & planning of accounting and estimating software.