eliminar permanentemente las revisiones de SVN

Preámbulo

Mi hosting SVN es proporcionado por un tercero que limita mi uso a 300MB. Como el proyecto es solo de un tamaño moderado, nunca imaginé que esto sería un problema. Una vez que la aplicación entró en producción, me di count de que necesitaba algún tipo de mecanismo de respaldo. Así que escribí un script de shell que exporta la database y comprime los files cargados por el usuario. Luego envío los files .sql y .zip a SVN (el server SVN no se ejecuta en la misma máquina que la aplicación).

Entonces hoy noté que he excedido la cuota. Rápidamente me di count de que esto debe ser debido a las copys de security.

Finalmente … la pregunta

Como .zip es un file binary, creo que el file completo se agrega al repository cada vez que se confirma (mientras que para un file de text, solo se agrega la diferencia). El file .zip es actualmente de unos 60 MB, por lo que dado que el script de copy de security se ejecuta a diario, solo puedo almacenar copys de security de 5 días en SVN.

De todos modos, planeo mejorar la situación al:

  • Cambiando el script de respaldo para que compare el tamaño del .zip con el último .zip en SVN y solo se comprometa si son diferentes. Los dos tendrán el mismo tamaño si ningún usuario ha subido files desde la última vez que se ejecutó la copy de security.

  • Eliminando todas las versiones anteriores del file .zip de SVN para liberar alguna cuota. Sin embargo, no sé si esto es realmente posible. Según tengo entendido, incluso si elimino el file de mi copy de trabajo y confirmo la eliminación, el file se eliminará del HEAD del repository, pero todas las versiones previamente confirmadas seguirán allí (utilizando mi preciada cuota).

¿Existe alguna forma de eliminar permanentemente todas las versiones anteriores de .zip y comenzar de nuevo con la estrategia de copy de security más eficiente descrita anteriormente?

Debe hacer lo siguiente para solucionar la situación:

  • Si tiene la posibilidad, elimine todos los files comprimidos del repository. Consulte el capítulo Filtrar el historial del repository en el libro rojo de SVN.
  • En el futuro, guarde su file zip en un lugar diferente. No es una buena idea agregar grandes binarys a un repository SVN, incluso si la diferencia binaria funciona bien.

200 MB no es mucho, si incluye datos binarys. Si es solo fuente, podría ser suficiente.