Submodule versus subtree merging
There is no easy answer to the question of whether or not to use submodules or subtree merging for a project. When choosing submodule, a lot of extra pressure is put on the developers working on the project as they need to make sure they keep the submodule and the super project in sync. When choosing to add a project by subtree merging, no or little extra complexity is added for developers. The repository maintainer, however, needs to make sure the subproject is up to date and that commits are added back to the subproject. Both methods work and are in use, and it is probably just a matter of getting used to either method before finding it natural to use. A completely different solution is to use the build system of the super project to fetch the necessary dependencies, as for example, Maven or Gradle does.