¿Cómo administrar files fuente comunes en el control de código fuente?

Tengo la siguiente estructura de directory:

enter image description here

CommonUtilities , DataStructure1 y DataStructure2 contienen files fuente utilizados por uno o más proyectos.

Me gustaría publicar uno o más proyectos como fuente abierta utilizando Mercurial y BitBucket. Pero no sé cómo administrar los files fuente utilizados por uno o más proyectos.

Soy nuevo en el control de fonts y en el desarrollo de software en general, por lo que me gustaría conocer las mejores prácticas en este tipo de situaciones.

Debería:

  1. Incluya los files fuente comunes en más repositorys según sea necesario? (es decir, hg add a dos o más repositorys)

  2. Incluya los files comunes de alguna otra forma que hg add ?

  3. Hacer algo completamente diferente?

Opción 3: Haz algo completamente diferente.

Puede usar la function de subrepository : mantenga los files comunes en un repository diferente y luego hágalos referencer desde su repository.

Estás tratando de resolver el problema con una herramienta incorrecta. La mejor forma de administrar dicha situación es una herramienta de administración de dependencies (consulte Maven , Ivy o Gradle ).