Je cherche actuellement la meilleure façon de configurer un miroir SVN. Je vois actuellement trois possibilités avec leurs propres inconvénients:
- Avoir un crochet post-commit SVN qui bloque et synchronise via svnsync. Le problème ici est évidemment que la validation est bloquée jusqu'à ce que les données soient transférées vers le miroir.
- Avoir un crochet post-commit SVN qui ne bloque pas et ne se synchronise pas via svnsync. Ici, je vois le problème suivant, plus subtil: Imaginez que quelqu'un archive un gros fichier et que quelqu'un d'autre peu de temps après archive un petit fichier. Étant donné que la validation n'est pas bloquante, deux processus svnsync pourraient être exécutés en même temps et le petit fichier pourrait dépasser le fichier BIG sur le chemin du miroir (cela semble très critique en temps et improbable, bien que possible en principe). Leur révision s'échangerait.
- Synchronisez comme toutes les quinze minutes avec un cron-job. Même problème si un commit prend plus de 15 minutes et évidemment ce délai.
Ai-je oublié une possibilité? Ai-je eu quelque chose de mal? Des idées? Merci déjà!
Je devrais peut-être noter que la deuxième possibilité est celle suggérée par différents sites Web. Voir par exemple http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync