TL; DR: ¿Por qué usar algo como Apache Archiva o Sonatype Nexus como repositorio de artefactos en lugar de Subversion?
El sistema de compilación que uso actualmente tiene muchos blobs binarios (imágenes, archivos de sonido, binarios compilados, etc.), tanto como entrada como salida para nuestras compilaciones. Nuestro sistema para gestionarlos es muy ad hoc; algunos se registran en nuestro repositorio de Subversion junto con nuestro código, algunos se almacenan en otro lugar fuera de cualquier control de versión formal.
Estoy buscando consolidar esto, por lo que tenemos algo que es más coherente y fácil de usar, y que separa los artefactos binarios del código.
Google me dice que hay una selección de repositorios de artefactos disponibles ( Archiva , Nexus , Artifactory , ...), pero al leer, no veo ninguna ventaja al usarlos sobre Subversion. Eso se encargará de los binarios para nosotros; ya lo hace para algunos de nuestros binarios, solo queremos reorganizar el diseño del repositorio para separarlos del código, y tiene la notable ventaja de que ya tenemos servidores y experiencia en Subversion.
Entonces. ¿Cuál es la ventaja de usar un sistema de administración de artefactos dedicado sobre el uso de una herramienta de control de versión general como Subversion?
Respuestas:
Respuesta corta: en general, no necesita un historial de artefactos binarios y cambios en esos artefactos, solo necesita versiones específicas.
Respuesta más larga: cada vez que realiza un pequeño cambio en un archivo binario, los sistemas de control de versiones no tienen forma de crear un delta, una diferencia entre los dos archivos, por lo que crea una copia completamente nueva.
En un CVCS, como SVN, eso no es un gran problema, porque solo tiene una copia central de su repositorio: su copia local es solo una versión. (Aunque, incluso entonces, su repositorio puede volverse muy grande, haciendo que los registros sean más lentos). Pero, ¿qué sucede si luego cambia a un DVCS, donde cada copia de un repositorio tiene el historial completo de cada archivo? El tamaño de los cambios se vuelve muy relevante allí.
¿Y qué te da a cambio del dolor? Lo único que ofrece es poder volver a una versión anterior de su repositorio y saber que tiene los binarios correctos para esa versión.
¿Pero necesitas todo el binario en tu repositorio para hacer eso? ¿O puede salirse con la suya simplemente teniendo un archivo de texto, diciéndole al proceso de compilación qué versiones extraer de otro repositorio en otro lugar?
Esto último es lo que ofrecen los repositorios de artefactos en general.
Además, algunos de los más profesionales, como Nexus, también le darán información sobre la licencia de artefactos de terceros, para que no corra el riesgo de caer en alguna cláusula sutil en lo que cree que es una biblioteca FOSS.
fuente
Usamos SVN como repositorio para versiones de lanzamiento y funciona muy bien. Tenemos en un repositorio de lanzamiento mejor que 30 gb de varias compilaciones de lanzamiento y funciona bien sacando compilaciones para su implementación.
Algunas de las ventajas de hacer esto son ...
fuente