2011-12-07 12 views
11

Me pregunto cuál es la mejor manera de mantener las dependencias binarias de la manera "amigable para el equipo".¿Cuál es su forma de mantener las dependencias binarias en el sistema de control de versiones?

Tenemos muchas dependencias para aplicaciones multiplataforma. Eso incluye la biblioteca comercial en versiones 32/64 * linux/windows/mac y algunas bibliotecas de código abierto compiladas en entornos no estándar, no tan triviales para reproducir. Además, tenemos activos gráficos que a veces son grandes (250 MB es bastante común).

Las bibliotecas deben actualizarse, a veces recompilarse, etc. Los elementos también se actualizan y necesitamos que estén sincronizados con el código.

Quiero lograr algo cerca de una vez, haga clic en actualizar y construir el sistema.

Intenté mantener todo en SVN, pero conduce a actualizaciones largas, incluso si los datos no se modificaron.

Ahora estoy pensando en algún sistema con guiones, que descargaría y descomprimiría archivos comprimidos con libs y activos, solo cuando sea necesario, como evento de compilación. Los scripts serán versionados, la fecha no.

¿Pero quizás hay una solución lista para usar? ¿Tienes alguna experiencia con eso?

+2

¿Ha buscado utilizar un repositorio de artefactos como [Artifactory] (http://www.jfrog.com/products.php) o [Nexus] (http://nexus.sonatype.org/)? – atodd

Respuesta

2

Los submódulos funcionan muy bien para esto. En un proyecto, tuve el código para la aplicación alojada de forma privada en unfuddle.com y todas las DLL, etc. (cosas grandes) que estaban en el dominio público de todos modos, se mantuvieron en github. Esto terminó usando muy poco de nuestro almacenamiento privado.

3

Con Mercurial 2.0, puede usar el largefiles extension para administrar dichos archivos. Se mantendrán fuera del historial normal y se descargarán bajo demanda. La extensión todavía tiene algunos bordes afilados, así que asegúrese de usar al menos la versión 2.0.1.

Dicho esto, prefiero usar una herramienta dedicada para esto, ya que la administración de ependencias realmente se realiza mejor fuera del sistema de control de origen.

Cuestiones relacionadas