¿Cómo lidiar con los submódulos Git en soluciones de Visual Studio con un diseño diferente?

Desarrollamos con Visual Studio 2010 (en C #) y migramos hace un tiempo de SVN a GIT. Ahora intentamos dividir nuestro repositorio (que es bastante grande, ~ 30,000 archivos) en muchos repositorios git, uno para cada solución. Las soluciones comparten algunos proyectos, en su mayoría bibliotecas que desarrollamos internamente y que queremos agregar desde todas las soluciones.

Los nuevos repositorios tienen un diseño plano. Un subdirectorio para cada proyecto (los proyectos compartidos son submódulos). En el gran repositorio antiguo, los proyectos están en una estructura de árbol.

El problema ocurre con referencias externas en los submódulos. En los nuevos repositorios, la ruta a un p, roject referenciado puede ser "...... libs \ someproject", mientras que en el nuevo diseño la ruta correcta sería ".. \ someproject".

Ya tuvimos algunas guerras de edición relacionadas con esto y no estamos interesados en más.

Soluciones a medio hornear en las que podría pensar:

use "Rutas de referencia" en ... csproj.user y excluya este archivo del control de versiones (tiene que rehacerse para cada desarrollador y después de cada limpieza de reopsitory)

utilice ramas para cada situación e intente enseñar a todos dónde deben ir los compromisos "reales" y dónde deben ir los compromisos de "cambio de entorno" (los submódulos ya no son el concepto más simple ...)

embed binarios en lugar de submódulos (pero ¿qué pasa con el desarrollo de cambios en los submódulos? ¿Qué pasa con las diferentes versiones de log4net?)

Alguien sabe de una solución sensat

Respuestas a la pregunta(10)

Su respuesta a la pregunta