Actualmente estoy buscando la mejor manera de configurar un espejo SVN. Actualmente veo tres posibilidades, todas con sus propios inconvenientes:
- Tener un SVN post-commit-Hook que esté bloqueando y sincronizando a través de svnsync. El problema aquí es, obviamente, que la confirmación está bloqueando hasta que los datos se transfieren al espejo.
- Tener un SVN post-commit-Hook que no se bloquee y se sincronice a través de svnsync. Aquí veo el siguiente problema, más sutil: Imagina que alguien registra un archivo GRANDE, y otra persona poco después registra un archivo pequeño. Debido a que el commit no es de bloqueo, dos procesos de svnsync podrían ejecutarse al mismo tiempo y el archivo pequeño podría superar al archivo BIG en el camino hacia el espejo (esto parece muy crítico e improbable, aunque en principio es posible). Su revisión cambiaría.
- Sincronice como cada quince minutos con un cron-job. El mismo problema si una confirmación tarda más de 15 minutos y obviamente ese retraso de tiempo.
¿Olvidé una posibilidad? ¿Me equivoqué? ¿Algunas ideas? Gracias ya!
Quizás debería tener en cuenta que la segunda posibilidad es la sugerida por diferentes sitios web. Por ejemplo, ver http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync