Liberando espacio en mi repositorio SVN


8

Tengo un repositorio SVN alojado en un sitio freemium con un tamaño máximo de repositorio. A medida que me acerco a esta capacidad, soy consciente de los archivos que he registrado que sé que puedo eliminar de forma permanente para liberar espacio en disco. ¿Cómo le digo a SVN que un archivo no solo se puede eliminar, sino que también es historial?

Respuestas:


7

como dice Hubert, svnadmin packempaquetará todos los archivos de repositorio individuales en un directorio en un solo archivo grande. Esto le ahorrará algo de espacio, pero solo retrasará el día del juicio final para usted. (Sin embargo, debería hacer que las operaciones de historial sean más rápidas, por lo que es una buena sugerencia de todos modos). Una cosa a tener en cuenta es que solo funciona en directorios fragmentados (es decir, la nueva estructura de directorios es poner 1000 revisiones en un solo directorio, luego iniciar un nuevo directorio) y solo empaqueta los directorios de fragmentos antiguos, no el que tiene la revisión actual en eso.

Por lo tanto, su única opción es eliminar las revisiones antiguas de su historial. Eso requiere svnadmin dump and load, con opcionalmente un filtro para eliminar directorios en su repositorio que ya no necesita. (por ejemplo, ramas temporales antiguas).

Volcar es fácil: svnadmin dump -r xxx:HEADdonde xxx es la revisión más antigua que desea mantener (es decir, esto volcará las más recientes, por lo que su revisión antigua se descarta, como el archivo). También puede guardar el archivo de las revisiones anteriores al volcarlas ( svnadmin dump -r 1:xxx)

Una vez que tenga su archivo de volcado, cargarlo es tan fácil como ejecutar svnadmin load pasando el nombre del archivo de volcado. puede ser una buena idea eliminar el repositorio anterior antes de cargar el nuevo, entonces obtendrá el beneficio de las últimas propiedades del sistema de archivos del servidor, si aún no las tiene.

Si desea mantener todas las revisiones anteriores pero filtrar ciertos directorios, querrá ejecutar el archivo de volcado a través de svndumpfilter , que eliminará las rutas especificadas. Tenga en cuenta que querrá volcar sin usar la opción --incremental.

Obviamente, pruebe todas las operaciones localmente: descargue en un archivo local, luego cárguelo en un repositorio temporal en su unidad local (también será más rápido) y compruebe que el historial y la última versión funcionan bien: exporto la última revisión a un directorio y use winmerge para verificar que los archivos sean idénticos a una exportación de la última revisión del repositorio en vivo. Pruébalo también con una revisión histórica si quieres ser paranoico.


3

De las Preguntas Frecuentes de Subversion :

El proyecto tiene planes ... algún día implementar un comando de eliminación de svnadmin que realice la tarea de eliminar información permanentemente.

...

Mientras tanto, su único recurso es svnadmin volcar su repositorio, luego canalizar el archivo de volcado a través de svndumpfilter (excluyendo la ruta incorrecta) en un comando de carga svnadmin.


2

No puede eliminar un archivo del repositorio SVN sin hacer el svnadmin dump; svndumpfilter; svnadmin loadbaile. Usted puede reducir el tamaño del repositorio si está utilizando FSFS, basta con ejecutar svnadmin packen el directorio de recompra.


0

En general, es una mala idea eliminar archivos de un repositorio bajo control de versiones.

No estoy seguro de haberlo hecho bien, pero así es como lo entiendo. El control de versiones se trata de sumas de control únicas. Si elimina algo, existe el riesgo de que estas sumas de verificación se reutilicen, lo que genera conflictos. Simplemente no vale la pena mitigar un problema de poco espacio en disco de esta manera, mejorar mejor su plan de datos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.