Solución de control de versiones para un sistema de compilation que produce un ISO de 4 GB

Tengo un proyecto de software que en la última etapa de su compilation, después de crear todos los files jar y scripts relacionados / files de configuration, necesito plantarlo en un ISO CentOS que tenga un file de configuration kickstart que ejecute algunos scripts postinstall e instale algunos RPM personalizados.

El proyecto está en un repository SVN y se está construyendo desde allí. No puedo insert los files de la ISO en el repository porque SVN no maneja un repository 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 build una versión anterior del proyecto, me encuentro en un mal lugar porque los RPM no están en el SVN. repository.

¿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 bash hacer?

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

Agradecerá todo tipo de respuestas y sugerencias.

¡Gracias!

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 repository de artefactos, como por ejemplo Nexus .
Consulte " Mejores prácticas para almacenar files .jar en VCS (SVN, Git, …) "

Deberá versionar en su repository SVN un file de text con las references necesarias al repository de artefactos y su key SHA1 / MD5 utilizada cuando dichos artefactos han sido almacenados.

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

Si necesita salidas de compilation reproducibles, necesita versionar el set completo de inputs de compilation. Eso incluye los RPM, o al less un manifiesto de sus versiones si pueden getse de manera confiable de alguna parte. Guardar el ISO generado sería un ejercicio inútil.

Supongo que puede consultar GIT ( http://git-scm.com/ ) – gratis, o Perforce ( http://www.perforce.com ) (costos). Creo que ambos pueden manejar files de 4GB en sus repositorys.

¿Qué hay de git? ( http://git-scm.com )

¿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 rebuild los ISO y los RPM que necesita?