transfernow transferir rapido por pesados para internet gratis grandes grande enviar correo como archivos archivo aplicacion 10gb version-control dvcs large-files

version-control - rapido - transferir archivos por internet



¿Hay un VCS distribuido que pueda administrar archivos de gran tamaño? (7)

¿Tiene que ser distribuido? Supuestamente, la gran subversión de beneficios que tiene una VCS distribuida más nueva es su capacidad superior para manejar archivos binarios.

¿Hay un sistema de control de versiones distribuidas (git, bazaar, mercurial, darcs, etc.) que pueda manejar archivos más grandes que la memoria RAM disponible?

Necesito poder asignar archivos binarios grandes (es decir, conjuntos de datos, video / imágenes fuente, archivos), pero no necesito poder distinguirlos, solo puedo confirmar y luego actualizar cuando el archivo cambie.

Lo miré por última vez hace aproximadamente un año, y ninguno de los candidatos obvios lo permitió, ya que están diseñados para diferir en memoria para velocidad. Eso me dejó con un VCS para administrar código y algo más (software de "gestión de activos" o simplemente rsync y scripts) para archivos grandes, lo cual es bastante feo cuando las estructuras de directorios de los dos se superponen.


Creo que sería ineficaz almacenar archivos binarios en cualquier forma de sistema de control de versiones.

La mejor idea sería almacenar archivos de texto de metadatos en el repositorio que hace referencia a los objetos binarios.


Ningún sistema de control de versiones distribuidas gratuitas lo admite. Si desea esta característica, deberá implementarla.

Puede escribir git: están interesados ​​en el rendimiento sin formato para el caso de uso de desarrollo del kernel de Linux. Es improbable que alguna vez acepten el compromiso de rendimiento en escalar a enormes archivos binarios. No sé sobre Mercurial, pero parecen haber tomado decisiones similares a las de Git al combinar su modelo operativo con su modelo de almacenamiento para el rendimiento.

En principio, Bazaar debería ser capaz de soportar su caso de uso con un complemento que implemente formatos de árbol / sucursal / repositorio cuya estrategia de almacenamiento e implementación en disco está optimizada para su caso de uso. En caso de que la arquitectura interna lo bloquee y libere un código útil, espero que los desarrolladores principales lo ayuden a arreglar la arquitectura interna. Además, puede configurar un contrato de desarrollo de funciones con Canonical.

Probablemente, el enfoque más pragmático, independientemente del DVCS específico, sería construir un sistema híbrido: implementar una gran tienda de archivos y almacenar referencias de blobs en esta tienda en el DVCS de su elección.

Divulgación completa: soy un ex empleado de Canonical y trabajé estrechamente con los desarrolladores de Bazaar.



Han pasado 3 años desde que hice esta pregunta, pero, a partir de la versión 2.0, Mercurial incluye la extensión largefiles , que logra lo que estaba buscando originalmente:

La extensión largefiles permite rastrear archivos binarios grandes e incompresibles en Mercurial sin requerir un ancho de banda excesivo para clones y pulls. Los archivos agregados como archivos grandes no son rastreados directamente por Mercurial; más bien, sus revisiones se identifican por una suma de comprobación, y Mercurial realiza un seguimiento de estas sumas de comprobación. De esta forma, cuando se clona un repositorio o se extraen conjuntos de cambios, no se necesitan los archivos grandes en las revisiones anteriores del repositorio, y solo se descargan los necesarios para actualizar a la versión actual. Esto ahorra espacio de disco y ancho de banda.


BUP podría ser lo que estás buscando. Fue construido como una extensión de la funcionalidad de git para hacer copias de seguridad, pero eso es efectivamente lo mismo. Divide los archivos en fragmentos y utiliza un hash continuo para hacer que el contenido del archivo sea accesible / haga un almacenamiento eficiente.


Llegué a la conclusión de que la mejor solución en este caso sería usar ZFS.

Sí ZFS no es un DVCS sino:

  • Puede asignar espacio para el repositorio creando un nuevo FS
  • Puede rastrear cambios creando instantáneas
  • Puede enviar instantáneas (confirmaciones) a otro conjunto de datos de ZFS