In my opinion there are more mandatory things:
1) Avoiding to commit partial code. For partial code or partial-semi-working features you can use branchs.
2) Just tested code commited to trunk. You can make (ab)use of testers or try in your own. We have regressed a lot after the big bug hunting.
3) Freezing trunk until the current code is stable enough. In the same way Windows invented the word "Downgrade" with Vista we have invented the "RegressOS" word.
4) And then, after we have "something" we can improve the "something".
5) And after that we can talk about changing to Git, using CMAKE,and restructuring a Tree, or a Forest.
I am not saying a restructure is needed, or moving to CMAKE is a bad thing. But we have better things to be done.