Atualmente, estou procurando a melhor maneira de configurar um espelho SVN. Atualmente, vejo três possibilidades, todas com suas próprias desvantagens:
- Tenha um SVN pós-commit-Hook que esteja bloqueando e sincronizando via svnsync. O problema aqui é obviamente que a confirmação está bloqueando até que os dados sejam transferidos para o espelho.
- Tenha um SVN pós-commit-Hook que não esteja bloqueando e sincronizando via svnsync. Aqui, vejo o seguinte problema mais sutil: imagine alguém fazer check-in em um arquivo BIG e outra pessoa logo em seguida faça check-in em um arquivo pequeno. Como a confirmação é sem bloqueio, dois processos svnsync podem estar em execução ao mesmo tempo e o arquivo pequeno pode ultrapassar o arquivo BIG no caminho para o espelho (isso parece muito crítico em termos de tempo e improvável, embora possível em princípio). A revisão deles seria trocada.
- Sincronize como a cada quinze minutos com um cron-job. O mesmo problema se uma confirmação demorar mais de 15 minutos e, obviamente, esse atraso.
Eu esqueci uma possibilidade? Eu entendi algo errado? Alguma ideia? Obrigado já!
Talvez eu deva notar que a segunda possibilidade é a sugerida por diferentes sites. Por exemplo, consulte http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync