Regression tests are not really that hard. I'll give you an example. I have been working on the EM_FORMATRANGE function and let it go for about six months due to other things going on in my life (something called El Tour de Tucson, you can Google it.) When I picked up the code, the Print Preview function did not work. I had a lot of code to bisect. I finished this in less than six hours at about 20 minutes a build....
Everything is in the git bisect man page. (type "man git-bisect" in a console and read). There is nothing much to it - it just does a binary search through revision but do the search under your guidance: you answer yes or no whenever a build finishes and tests if that build "work" (as in for a specific problem) or not.
On modern linux systems, ccache caches compilation results and git by default when switches versions update all files which changes to have the latest file stamps, so either way one does actually do a full build (but either read from the compiler cache or rely on make - and the makefile - being correct to have the right dependencies and only rebuild files changed).