Añadir dependencies al repository o no?

Tengo un motor que tiene bastantes dependencies. Para que sea más fácil para mí y para los demás miembros de mi grupo que desean ejecutar el motor a través de SVN, he confirmado las dependencies en el mismo repository. Ahora sé que casi todos los proyectos requieren que descargue las dependencies, pero una vez más, para eliminar esa molestia, los incluí (estoy al tanto de los problemas de licencia, por lo que los eliminaré si los distribuyo. Actualmente es un repository privado así que eso no es un problema).

Ahora nos estamos moviendo a Mercurial y decidimos comenzar con un repository nuevo en lugar de convertir SVN a Mercurial. Así que este es el momento de limpiar la basura del repository y también averiguar si esta no es una buena práctica. Sospecho que no es así, pero pensé que me aseguraría y me preguntaría qué puedo hacer para mejorarlo y al mismo time retener las cajas libres de problemas (es decir, revisar el motor y las dependencies de una sola vez en lugar de download todo de ellos y tratando de hacer coincidir las versiones al mismo time).

Algunos detalles más. Estoy usando una variable de entorno para la ruta principal a mi motor. Antes de comenzar a escribir esta pregunta, iba a separar mi motor y las dependencies y crear dos repositorys. Uno será el motor, el otro las dependencies. Entonces las dependencies también tendrán una variable de entorno para que los proyectos puedan usarlas fácilmente. Esto también me permitirá distribuir mi proyecto sin las dependencies y permitir que las personas lo obtengan, dependiendo de la licencia de cualquier dependencia dada.

Espero que la pregunta sea lo suficientemente clara. Cualquier sugerencia, input, sobre todo si algo que 'proyectos de código abierto' hacen por ahí sería muy apreciada.

Puedes usar la extensión Subrepo:

Mercurial Subrepos: ¿cómo los creas y cómo funcionan?

Esto le permite tener references a sus dependencies, siempre que tengan repositorys Hg o SVN. Corrige el número de revisión y lo actualiza manualmente una vez que cambia a la nueva versión.

Incluso si no utiliza Subrepo, el pago sin complicaciones es absolutamente esencial, ya sea que se implemente a través del control de código fuente o un script separado que descargue las versiones necesarias.

Probablemente esté bien almacenar las dependencies en el repository si su proyecto es pequeño. Pero si es complejo o si simplemente desea una solución mejor (sofisticada y más poderosa) eche un vistazo al administrador de dependencies de ivy .

Proyectos como Handbrake usan wget / curl para download y comstackr las dependencies (x264 y ffmpeg entre otras) en el Makefile.