Ich suche derzeit nach dem besten Weg, um einen SVN-Spiegel einzurichten. Ich sehe derzeit drei Möglichkeiten, die alle ihre eigenen Nachteile haben:
- Haben Sie einen SVN-Post-Commit-Hook, der über svnsync blockiert und synchronisiert. Das Problem hierbei ist offensichtlich, dass das Commit blockiert wird, bis die Daten an den Spiegel übertragen werden.
- Haben Sie einen SVN-Post-Commit-Hook, der nicht blockiert und über svnsync synchronisiert. Hier sehe ich das folgende, subtilere Problem: Stellen Sie sich vor, jemand checkt eine BIG-Datei ein und jemand anderes checkt kurz danach eine kleine Datei ein. Da das Commit nicht blockiert ist, können zwei svnsync-Prozesse gleichzeitig ausgeführt werden und die kleine Datei kann die BIG-Datei auf dem Weg zum Spiegel überholen (dies scheint sehr zeitkritisch und unwahrscheinlich, obwohl dies im Prinzip möglich ist). Ihre Überarbeitung würde tauschen.
- Synchronisieren Sie wie alle fünfzehn Minuten mit einem Cron-Job. Gleiches Problem, wenn ein Commit länger als 15 Minuten dauert und offensichtlich diese Zeitverzögerung.
Habe ich eine Möglichkeit vergessen? Habe ich etwas falsch gemacht? Irgendwelche Ideen? Danke schon!
Vielleicht sollte ich beachten, dass die zweite Möglichkeit die von verschiedenen Websites vorgeschlagene ist. Siehe z. B. http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync