The popular and state-of-the-art distributed version control systems (DVCS) tools Git and Mercurial are very likely the best way of reliably organising software development. Both have numerous advantages over their predecessor Subversion (SVN).
All three have a feature for handling nested repositories, which can but must not depend on each other: Git Submodules, Mercurial Subrepositories and Subversion Externals.
In this article I will describe an attempt of converting an existing SVN repository into a hierarchy of nested Git, Mercurial or SVN repositories while satisfying special demands on the whole setup.
If you are just interested in the final solution, scroll down to the conclusion. But be warned …