I've been using git submodules for years but there are some real problems with them:
* Changing from a subdirectory to a submodule breaks lots of things like git reset and git bisect.
* Having to remember to git module init, update etc. I always have to look up the commands and never remember what the difference is.
* I don't care that there are unlisted files in a submodule, either don't bug me about this in status, or integrate commands in such a way that they work transparently across the main module and submodule.
* Related to the previous: Coordinating a single logical change across submodules involves several manual steps and has plenty of scope to go wrong.
* Changing from a subdirectory to a submodule breaks lots of things like git reset and git bisect.
* Having to remember to git module init, update etc. I always have to look up the commands and never remember what the difference is.
* I don't care that there are unlisted files in a submodule, either don't bug me about this in status, or integrate commands in such a way that they work transparently across the main module and submodule.
* Related to the previous: Coordinating a single logical change across submodules involves several manual steps and has plenty of scope to go wrong.