Seguimiento de múltiples subproyectos con Visual Studio 2012 git

He estado luchando con lo que (al less en mi opinión) debería ser simple:

Tengo dos proyectos, el "MainProgram" y una "SubLibrary". Ambos fueron creados con un repository de Git usando el nuevo soporte Visual Studio 2012 Git.

Ambos repositorys funcionan bien de forma independiente.

Sin embargo, cuando agrego "Proyecto existente" / SubLibrary a mi Solución de MainProgram, la sub-biblioteca no está siendo "git-monitoreada" por Visual Studio -sin icons de estado superpuestos en Solution Explorer etc.- es como si ese proyecto no estuviera bajo fuente -controlar.

A través de algunas investigaciones, agregué un submodule de git al repository de MainProgram, agregué la versión clonada del proyecto de SubLibrary a la solución y … aparecieron los icons de git en el Explorador de soluciones. … pero mi alegría fue de corta duración … Sin historial, el estado de los files modificados no se mostró en el Explorador de soluciones. Sin embargo, los cambios fueron recogidos por TortoiseGit desde File Explorer.

El file .gitmodules se veía bien (pero como puedes ver, ¡NO soy git guru!) …..

¡Seguramente debe ser posible tener control de versiones sobre múltiples proyectos / repos en una única solución!

¡Sería muy agradecido si alguien pudiera señalarme en la dirección correcta!

En Git, de hecho, es habitual tener repositorys más pequeños. Un repository típico contendrá un solo proyecto, mientras que TFS y Subversion tienden a tener múltiples proyectos en un único repository.

Eso conducirá a la situación que describió. Actualmente, por lo que puedo ver, no hay soporte multi-repository git en Visual Studio (y TFS). Simplemente no es posible tener una única solución con múltiples proyectos mientras cada proyecto reside en su propio repository de Git.

Lo que hice en el pasado

  • Creé un directory que servía como raíz
  • En ese directory crea un subdirectory para cada proyecto individual
  • Clona cada repository git en su subdirectory respectivo
  • En un proyecto, use una reference de file con una ruta relativa para agregar references
  • (opcional) crea un único file MSBuild que comstack todas las soluciones en el order correcto. De esta forma puedes crear una compilation usando múltiples repositorys Git.

No tendrá una solución única de esta manera, pero podrá seguir sus cambios en cada repository individual.

Espero que esto te ayude.