Part of the problem migrating is that there's a bunch of stuff in the repository that shouldn't be in a code repository at all. Plus
We have all of the "default" 0AD mod/resources in the same repo as all engine code. These are really orthogonal, and belong in separate repositories.
We have many dependencies in the repository. These do not belong in a code repository, but some sort of binary repository/dependency management system (eg, Nuget in the C# world, or maven for Java). C++, however, has not traditionally used one of these systems.
The final, built binaries, are