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?

¿Fue útil?

Solución

La mejor manera es como se ha mencionado cylcle volcado / carga. Pero se puede intentar la actualización .

svnadmin upgrade

Hacer una copia de la cesión temporal en primer lugar tratar la actualización y prueba de ello .... (no deje de hacer una copia de seguridad).

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top