Attualmente sto cercando il modo migliore per impostare un mirror SVN. Attualmente vedo tre possibilità tutte con i loro svantaggi:
- Avere un hook post-commit SVN che sta bloccando e sincronizzando tramite svnsync. Il problema qui è ovviamente che il commit sta bloccando fino a quando i dati non vengono trasferiti sul mirror.
- Disponi di un hook post-commit SVN che non blocchi e si sincronizzi tramite svnsync. Qui vedo il seguente problema più sottile: immagina che qualcuno controlli in un file BIG e qualcun altro poco dopo controlli in un file piccolo. Poiché il commit non è bloccante, due processi svnsync potrebbero essere in esecuzione contemporaneamente e il piccolo file potrebbe superare il file BIG sulla strada per il mirror (questo sembra molto critico in termini di tempo e improbabile, sebbene possibile in linea di principio). La loro revisione cambierebbe.
- Sincronizzazione come ogni quindici minuti con un cron-job. Stesso problema se un commit richiede più di 15 minuti e ovviamente quel ritardo.
Ho dimenticato una possibilità? Ho sbagliato qualcosa? Qualche idea? Grazie già!
Forse dovrei notare che la seconda possibilità è quella suggerita da diversi siti web. Ad esempio, consultare http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync