Mercurial, dependencies, estructura del repository

Estoy trabajando en un proyecto multiplataforma y uso CMake para configurar proyectos con diferentes sistemas de compilation. La desventaja de este enfoque es la necesidad de dependencies y subproyectos creados en cada plataforma. Modifiqué la estructura clásica de trunk-branch-tag (entonces estaba en subversión) a lo siguiente:

trunk/ data/ test/ sources/ ... branches/ branch-A/ branch-B/ ... tags/ tag-1.0/ tag-1.1/ ... workspace/ msvs_2008/ 3rdParty/ - (contains precompiled libs, eg boost) external-lib-1/ - (external library-1 source) external-lib-2/ - (external library-2 source) project/ - (external to the trunk) CMakeLists.txt - (configures this stuff together) generic/ - (for linux, 3rdParty libraries installed using package manager) external-lib-1/ external-lib-2/ project/ CMakeLists.txt msvs_2010/ - (experimental) 3rdParty/ external-lib-1/ external-lib-2/ project/ CMakeLists.txt 

Entonces, el desarrollador simplemente puede verificar la twig de desarrollo necesaria y comstackr fuera de la caja. También puede verificar el enlace troncal y si tiene librerías preconstruidas y dependencies necesarias, CMake lo encontrará.

¿Alguien ha tenido problemas con este problema? ¿Cuál es la mejor manera de resolver el problema con mercurial (no estoy seguro de que usar las twigs para diferentes sistemas de compilation con el subrepository troncal sea la mejor solución con mercurial, y no estoy seguro de que include bibliotecas prebuild para cada sistema integrado sea correcto)?

Mira Mercurial Subrepos , son la solución para este tipo de configuration.