methods para almacenar files binarys en SVN

¿Hay diferentes methods para almacenar files binarys en SVN? en caso afirmativo, ¿qué son y cómo modifico las opciones de almacenamiento?

Leí que hay 4 forms de almacenar files binarys en SVN:

  1. Comprimido alquitranado – import – export.
  2. Alquitrán – import – export.
  3. import y export.
  4. Eficiente check-in.

¿Cuáles de esos son los más útiles para la eficiencia de time? y ¿cómo configuro el SVN para usar cualquiera de esos methods?

Gracias, Oded.


Tengo muchos files binarys de pequeño tamaño y algunos de gran tamaño. Todos son cambiados frecuentemente Actualmente estoy trabajando en CVS y cambiando a SVN pronto y quería saber cómo almacenar binarys.

Leí Subversion de ajuste de performance (mencionado anteriormente) y lo encontré útil pero no se hicieron ejemplos, así que no entendí exactamente cómo hacer cada una de las 4 forms que sugirió.

Mi pregunta básica es si el clima es bueno o no (¿y qué son?) Mi primera consideración es el time eficiente y luego el espacio. Gracias 🙂

No configura Subversion para usar ninguno de esos methods, especifica qué método usar al colocar files en el repository. Y por "método", no me refiero a ninguno de los 4 que mencionas, sino que simplemente "importa" o "confirma", y tendrás que seguir contándole a Subversion el método elegido cada vez que quieras almacenar un nuevo revisión de ese file en el repository.

Consulte Subversion de ajuste de performance .

Como puede ver en la descripción de allí, para usar el "método 1", comprimir a tar y luego usar la import, tienen que comprimir todos los files binarys en un file .tar y luego usar el command de import de Subversion para agregue los files en el repository.

También tenga en count que, en este caso, el command de import almacena files como nuevos files, no como deltas a una revisión anterior, por lo que puede ser eficiente en el time, pero no eficiente en el uso del espacio, si se han confirmado pocos cambios en un file grande.

Subversion en sí misma solo confirma e importa. Un compromiso es una nueva revisión de un file existente, almacenado como una secuencia de deltas (o la primera revisión de un file nuevo, que no lo es), y una import es solo un file nuevo. Cualquier otra cosa que deba hacer usted mismo.

Si los files binarys solo se cambian de vez en cuando, podría valer la pena investigar más, pero si se cambian con regularidad, sugiero simplemente usar Subversion de forma normal, con el command de confirmación.

También tenga en count que el consejo típico cuando se trata de files binarys es que usted, en lugar del file binary, almacena el código fuente en lo que sea que produce esos files binarys, si es posible, y luego vuelve a ejecutar las herramientas para reproducir los files binarys reales. . Si los files binarys requieren mucho time o espacio para reproducirse, solo entonces almacenará los files binarys en cuestión.

Los files binarys tienen el problema de no ser realmente buenos para comparar, y por lo tanto si el desarrollador a y b recupera la última versión, y luego el desarrollador a confirma una nueva revisión antes de que el desarrollador b intente hacer lo mismo, se producirá algún tipo de conflicto. Es posible que al desarrollador B no le quede otra opción que tratar de descubrir los cambios por sí mismo.


Editar : Permítanme enfatizar lo que quiero decir con COMMIT e IMPORT.

La principal diferencia es que COMMIT, suponiendo que ya tenga el file en el repository, intente diferenciar el file en su copy de trabajo con la versión del repository anterior, y almacene solo los cambios. Esto tomará time y memory, para resolver esas diferencias, pero típicamente resultará en un pequeño set de cambios de revisión en su repository. En otras palabras, el espacio de disco en su server Subversion se verá less afectado que con el command IMPORT.

IMPORT, por otro lado, importará el nuevo file como si acabara de darle un nuevo file y dijera "olvídate del anterior, simplemente almacena este file", y así no se gastará time ni memory en resolver las diferencias , pero el set de cambios resultante en el repository será más grande. En otras palabras, el espacio de disco en su server Subversion se verá más afectado que con el command COMMIT, pero IMPORT generalmente se ejecutará mucho más rápido.

Cualquier otro flujo de trabajo que quiera imponer debe hacerse fuera de Subversion. Esto incluye el command TAR y las opciones de compression disponibles en su sistema operativo. Si desea utilizar el "método 1", usted mismo debe comprimir manualmente los files que desea importar en un solo file .tar antes de otorgarlo a Subversion. No puede pedirle a Subversion que haga nada de eso por usted. Por supuesto, puede crear files de script que automaticen el process de alguna manera, pero aún así, no es un problema de Subversion.

Haría algunas testings serias con esto para descubrir si las ganancias realmente valen la pena el trabajo extra que impondrás en tu flujo de trabajo de Subversion.

¿Podría describir su situación con más detalle?

¿Tienes varios files binarys pequeños que cambian todos juntos? ¿Algunos files binarys grandes que cambian de forma independiente? ¿Tus files cambian con frecuencia?

¿De verdad has descubierto que los valores pnetworkingeterminados no son lo suficientemente buenos? Siempre acabo de agregar files binarys de la misma forma que lo normal y me pareció que funcionaba. Como cualquier problema de performance, no trataría de complicar las cosas a less que tenga una buena razón para hacerlo, en cuyo caso, comparta esa razón con nosotros.