versiones tortoise subversion que informatica definicion create control svn documentation content-management-system

svn - tortoise - ¿Qué tan bueno es Subversion en el almacenamiento de muchos archivos binarios?



svn download (7)

Bueno, va a tomar mucho espacio almacenar todo eso en Subversion, te diré tanto. Subversion no almacena archivos binarios a través de delta de la forma en que almacena archivos de texto. Probablemente ocupe tanto espacio como almacenaría simplemente un montón de archivos binarios en su disco duro, además del repositorio.

Es posible que un tiddlywiki del lado del servidor pueda almacenar las URL en los documentos dentro de Subversion.

Si son en su mayoría archivos .doc y .xls, también está el Sharepoint de Microsoft.

Estoy buscando un lugar para poner unos pocos GB de documentos (principalmente .doc y .xls ). Mi equipo ya tiene un servidor de Subversion configurado para administrar los documentos que creamos, por lo que preferiría usarlo si fuera posible. ¿Qué tan bien manejará Subversion todas estas cosas extra? La mayor parte es información heredada y solo tendrá una versión, pero es posible que se puedan actualizar algunos documentos.

Me han advertido que SVN no es especialmente amistoso con los archivos binarios en gran cantidad. Tengo dudas de intentarlo para ver si funciona, ya que siempre estarán en el historial del repositorio incluso si luego los elimino.

Alguna alternativa? Necesitaremos la posibilidad de comentar y / o etiquetar documentos, pero podemos usar un servicio parecido a Delicious combinado con las URL para los documentos en SVN (o similar).

Más tarde, no estoy tan preocupado por los diffs en los binarios ya que, como se dijo anteriormente, no cambiarán mucho. Estoy bien con una ligera molestia si lo hacen, no es peor que SharePoint.


Creamos nuestro cliente de subversión exactamente para esto, ya que realizamos trabajos de diseño / consultoría realmente grandes que realmente necesitaban control de versiones. Nunca tuvimos ningún problema con eso.


Depende de la frecuencia con que se actualicen los archivos. No puede hacer nada para fusionar archivos binarios y, por lo tanto, cada vez que haya un conflicto, tendrá problemas. De lo contrario, solo es almacenamiento y recuperación, y aunque no es tan bueno como con el texto, todavía lo maneja muy bien.


En mi empresa anterior configuramos Subversion para almacenar archivos CAD. Los archivos de hasta 100 MB se almacenaron en Subversion. Si mucha gente ''agrega'' grandes archivos al servidor web de Subversion puede ser un cuello de botella. Sin embargo, los commits incrementales estaban perfectamente bien.

Subversion almacenó ''delta binario''. De hecho, en el lado del servidor, los archivos binarios y de texto se tratan exactamente igual en el almacenamiento del ''delta''. Consulte la sección "Mejoras en la codificación delta binaria" en la página http://subversion.tigris.org/svn_1.4_releasenotes.html . Explica explícitamente que " Subversion usa el algoritmo xdelta para calcular las diferencias entre las cadenas de bytes " (y no las cadenas de "caracteres" '').

Solo por experimento, almacené la versión 10 de CAD (archivo de pieza de CATIA). Cada versión realicé modificaciones menores en la pieza y luego verifiqué el tamaño del repositorio en el servidor. El tamaño total fue de aproximadamente 1.2x para una revisión de aproximadamente 10 (x - siendo el tamaño del archivo original).

Recuerde establecer la propiedad svn: needs-lock. En mi experiencia, la mejor manera es usar ''auto props'' para establecer svn: needs-lock basado en la extensión de archivo.


Hay una gran diferencia entre muchos archivos binarios grandes y una gran cantidad de archivos binarios.

En mi experiencia SVN está bien con archivos binarios individuales de varios cientos de megabytes. Los únicos problemas que he visto comienzan a ocurrir con archivos individuales de alrededor de un gigabyte más o menos. Las operaciones fallan por razones misteriosas y desconocidas, posiblemente SVN no puede manejar los problemas relacionados con la red.

No conozco ningún problema SVN relacionado con la cantidad de archivos binarios, más allá de su falta de capacidad de fusión y el hecho de que los archivos binarios a menudo no se pueden almacenar eficientemente como deltas (SVN puede usar deltas).

Asi que;

  • 1000 archivos de 1 MB = bien
  • 100 archivos de 10 MB = bien
  • 10 archivos de 100 MB = bien
  • 1> 1000MB archivo = no es una buena idea.

Espero que el tamaño de sus documentos se ajuste a una de las categorías finas :)


Por lo que he visto, Git es muy rápido en comparación con Subversion, y he oído que es algo más rápido que Mercurial, pero solo un poco. Sin embargo, no lo he probado específicamente con archivos binarios grandes o muchos.

Dicho esto, la forma en que Git rastrea los cambios, me imagino que es muy eficiente al tratar con archivos binarios.

Puedo decir esto con seguridad; Una vez que me acostumbré a Git no hay forma de que elija volver a Subversion. Cuando tengo que trabajar con repositorios de Subversion sigo usando Git aunque git-svn. De esta forma obtengo todas las ventajas del control de versión distribuida, pero aún tengo un soporte realmente bueno para llevar los commits al repositorio central de Subversion.


Yo personalmente uso Mercurial para tales tareas. Lo he usado para almacenar cientos de gigas de medios. Sí, ocupa algo de espacio en disco, pero el espacio en disco es barato. Con Mercurial, también obtiene el beneficio de que se distribuye, por lo que hacer un "pago" o clonar como se conoce en Mercurial, obtiene el repositorio completo, no solo una instantánea. Si tu servidor alguna vez muere, entonces aún estás en el negocio.