I do not necessarily recommend this as a course of action, but I wrote a script (unsubmodule.py) that should remove and then merge each submodule as a subdirectory of the same name, keeping a history of the perfect version of each submodule:
https://gist.github.com/763439
I have not tested very much, so please be careful, for example. first try on a new clone. The script does not try to save any topic branches in submodules, but only the version made in the supermodule.
ⁱ (And for the reason that Jonathan Leffler mentions in his comment and because I work on several projects that use submodules without major problems.)
source share