ReShard gran repositorio SVN existente
-
26-09-2019 - |
Pregunta
tenemos un un muy gran repositorio SVN (50 GB, más de 100.000 revisiones). Trabajar con él es bastante lento y mi conjetura es que la razón de esto es la estructura de directorios plana en db / db / revoluciones y revprops (Donde cada revisión es un archivo).
utilizar el formato FSFS con SVN 1.5 (en un servidor Linux), pero el repositorio fue creado con una versión anterior de subversion. Ahora leo que SVN 1.5 soportes "sharding" y yo entendido que esta función distribuye las revisiones en múltiples directorios por lo que un solo directorio no contiene tantos archivos. Esto suena bastante útil, pero por desgracia parece que esta función sólo se utiliza con repositorios que están recién creados con SVN 1.5.
¿Cómo puedo convertir una gran cesión temporal lineal existente a un acuerdo de recompra fragmentada? El manual menciona la función "fsfs-reshard.py", pero este guión dice "Este guión está terminado y no está listo para ser utilizado en los datos en vivo. Confiar en nosotros.". Por lo que definitivamente no quiero usar eso. ¿Hay alguna alternativa?
Otros consejos
¿Un svnadmin dump
y svnadmin load
hacer el truco? http://subversion.apache.org/faq.html#dumpload
Debido a dump / proceso de restauración requiere gran cantidad de espacio en disco y el tiempo de procesamiento, he publicado (en 2010) una versión mejorada de fsfs-reshard.py
que incluye soporte para Subversion 1.6 FSFS formato 5:
https://github.com/ymartin59/svn-fsfs-reshard
Es compatible con interruptor entre lineal a los diseños fragmentados, desembalaje fragmentos cuando sea necesario. Gracias a las estadísticas de fragmento de cálculo, se pueden anticipar tamaños de revisión Selección del tamaño de fragmento apropiado para llevar.
Por supuesto que debe ser emplearse con cuidado :
- En primer procedimiento de prueba en una copia del repositorio si es posible
- Obtener una copia de seguridad listo para ser restaurado
- Impedir el acceso al repositorio al procesar
- Ejecutar
svnadmin verify
antes de ponerlo en vivo