Manejo de references de proyectos cuando se usa control de versiones con múltiples proyectos

Digamos que tengo un layout repositry como el siguiente:

|Root |->CommonLib |->ProjectA.PartA |->trunk |->lib |->src //etc |->ProjectA.PartB |->trunk |->lib |->src //About four more projects. 

Ahora los divido así para poder trabajar en cada sección diferente y ramificarlos si es necesario.

ProjectA.PartA usa ProjectA.PartB como reference.

Antes de estructurarlo de esta manera tenía todas las troncales del proyecto en una carpeta de src y simplemente tiraba de esa carpeta y luego agregaba los proyectos a una solución y simplemente agregaba references de proyectos entre ellos.

Esto funcionó bien mientras estaban todos en la misma carpeta, pero creo que probablemente no sea una buena práctica y te obliga a tener la misma estructura de pago de la carpeta o las dependencies se rompen.

Mi idea es dónde build cada proyecto y almacenar los binarys en la carpeta CommonLib en la raíz y luego usar svn: externals en cada proyecto para desplegar sus dependencies de la carpeta CommonLib en su carpeta lib y agregar una reference que en lugar del proyecto sí mismo.

¿Sería mejor la solución anterior que agregar references de proyectos?

¿Cuál es la práctica común cuando se tienen references internas del proyecto?

Si todos son parte del mismo "objective", ¿debería configurar externos en todas las carpetas del proyecto para desplegar las dependencies como fuente?

Gracias.

Las copys de SVN son baratas y las fusiones de SVN son fáciles. Así que simplemente me quedaré con una solución de raíz y los proyectos se harán reference entre sí. Rompa todo el asunto si lo necesita, luego vuelva a integrarlo.

Por lo general, hago reference al proyecto de cada solución utilizando elementos externos en lugar de la biblioteca misma. En este caso, es muy importante tener testings unitarias en cada proyecto para las testings de regresión.

También está bien (y probablemente sea más seguro) almacenar los binarys y hacer reference a los externos. Si fuera así, click cada versión del binary de dependencia y haga reference a eso. Si quisiera actualizar, cambiaría el externo para usar la nueva label, esto le permite actualizar de manera más segura una biblioteca.

EDITAR: Me di count de que se dividía en dos partes del mismo proyecto; mi respuesta anterior es para bibliotecas compartidas en varios proyectos. Los mantendría en el mismo baúl que Wyatt dijo