Temos alguns módulos em que fizemos isso e o que fizemos essencialmente é:
- Configure um repositório Git para o módulo.
- Implante este módulo na base de código do site de produção e confirme tudo, incluindo:
- soft-links criados por modman
- o diretório .modman que hospeda o repositório do módulo clonado
- Use o modman para "implementá-lo" em outras versões e / ou ambiente de desenvolvimento para desenvolvimento e teste.
Dessa maneira, você obtém a flexibilidade necessária para o desenvolvimento do módulo, versão do código no site único e, se você fizer alterações no módulo na base de código do site único, poderá enviá-las diretamente para o repositório do módulo, pois o repositório existe no diretório .modman.
ATUALIZAÇÃO:
Quando eu escrevi isso originalmente, não considerei em minha resposta que o Git não permite que (sub) módulos sejam comprometidos com um repositório; nesse caso, "comprometer tudo" precisa de alguma elaboração!
Aliás, isso é porque eu fiz isso com mais frequência usando o modman para implantar módulos alojados nos repositórios do Git em uma base de código de produção hospedada pelo SVN… e o Subversion não tem escrúpulos que impedem o comprometimento de toda a árvore do Git no VCS.
Então aqui vai ...
Se você estiver usando o SVN para hospedar o código do site de produção, não deverá ter problemas, pois o Subversion não tem (praticamente) nenhum conceito de submódulo. Não vai se importar.
Se você estiver usando Git para o código do site de produção, terá que usar submódulos para "confirmar tudo" no repositório de códigos do site. Depois de usar o modman para clonar algo assim:
modman clone ssh://git@bitbucket.org/<user>/<repo>.git
Você também deseja adicioná-lo como um submódulo da seguinte forma:
git submodule add ssh://git@bitbucket.org/<user>/<repo>.git .modman/<repo>
Depois de fazer isso, você poderá adicionar o diretório .modman e o arquivo .gitmodules ao índice e confirmar.
Após a clonagem do repositório que está usando esses módulos instalados via modman, basta iniciar submodules e atualizar:
git submodule init
git submodule update
PS: Agora eu uso o Git em tempo integral em todos os novos projetos; espero que essa supervisão não ocorra novamente. Desculpem rapazes. ;)