versiones usados tipos son software sistemas sistema qué proyecto por para mas manejo los importante fuente formato documentos distribuido desarrollo cuáles control considerarías codigo archivos version-control build centos

version control - usados - Solución de control de versiones para un sistema de compilación que produce un ISO de 4 GB



sistemas de control de versiones mas usados (5)

¿Por qué tiene que almacenar los ISO o RPM en el control de la versión?

¿Por qué no almacenar los scripts y / o configuraciones que pueden reconstruir los ISO y los RPM que necesita?

Tengo un proyecto de software que en la última etapa de su compilación, después de crear todos los archivos jar y scripts relacionados / archivos de configuración, necesito plantarlo en un ISO CentOS que tenga un archivo de configuración kickstart que ejecute algunos scripts postinstall e instale algunos RPM personalizados.

El proyecto está en un repositorio SVN y se está construyendo desde allí. No puedo insertar los archivos de la ISO en el repositorio porque SVN no maneja un repositorio de 4GB. Por otro lado, el problema es que algunos de los RPM en el ISO pueden cambiar de una versión a otra, y cuando quiero construir una versión anterior del proyecto, me encuentro en un mal lugar porque los RPM no están en el SVN. repositorio.

¿Existe una buena solución de control de versiones que pueda usar solo para los 4 GB de ISO que pueden manejar esta cantidad de datos? ¿Hay alguna solución que no sea de control de versión para lo que intento hacer?

Preferiría producir la menor cantidad posible de cambios a la estructura del repositorio SVN existente, ya que hay muchos scripts y cosas que dependen de él.

Agradecerá todo tipo de respuestas y sugerencias.

¡Gracias!



Si necesita salidas de compilación reproducibles, necesita versionar el conjunto completo de entradas de compilación. Eso incluye los RPM, o al menos un manifiesto de sus versiones si pueden obtenerse de manera confiable de alguna parte. Guardar el ISO generado sería un ejercicio inútil.



Si realmente necesita almacenar artefactos grandes (ISO, RPM, ...) para los cuales:

  • no necesita comparar las diferencias de una versión a otra
  • no es necesario realizar evoluciones paralelas (artefactos de solo lectura)

entonces en realidad no necesita un VCS (Sistema de control de versiones).

Necesitas un repositorio de artefactos, como por ejemplo Nexus .
Consulte " Mejores prácticas para almacenar archivos .jar en VCS (SVN, Git, ...) "

Deberá versionar en su repositorio SVN un archivo de texto con las referencias necesarias al repositorio de artefactos y su clave SHA1 / MD5 utilizada cuando dichos artefactos han sido almacenados.

Las combinaciones de esos dos repositorios permitirán la reproducibilidad completa, mientras se escala muy bien (en términos del tamaño del repositorio), ya que un repositorio de artefactos (al contrario de un VCS) solo está limitado por el espacio en disco.