私は現在、SVNミラーをセットアップするための最良の方法を検討しています。現在、3つの可能性があり、すべて独自の欠点があります。
- svnsyncを介してブロックおよび同期しているSVN post-commit-Hookがあります。ここでの問題は明らかに、データがミラーに転送されるまでコミットがブロックされていることです。
- 非ブロッキングでsvnsyncを介して同期するSVN post-commit-Hookがあります。ここで、次のより微妙な問題を確認します。誰かがBIGファイルをチェックインし、その直後に誰かが小さなファイルをチェックインするとします。コミットは非ブロッキングであるため、2つのsvnsyncプロセスが同時に実行されている可能性があり、小さなファイルがミラーへの途中でBIGファイルを追い越す可能性があります(原理的には可能ですが、これは非常に時間が重要でありそうにありません)。彼らの改訂は入れ替わるでしょう。
- cronジョブで15分ごとに同期します。コミットに15分以上かかる場合は同じ問題が発生し、明らかにその遅延が発生します。
可能性を忘れましたか?私は何か間違ったことをしましたか?何か案は?もうありがとう!
多分私は2番目の可能性が別のウェブサイトによって提案されたものであることに注意する必要があります。たとえば、http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsyncを参照して ください
コミットは非ブロッキングであるため、2つのsvnsyncプロセスが同時に実行されている可能性があり、小さなファイルがミラーへの途中でBIGファイルを追い越す可能性があります(原理的には可能ですが、これは非常に時間が重要でありそうにありません)。彼らの改訂は入れ替わるでしょう。これは不可能です。svnsyncはコミットがリポジトリに書き込まれるときにコミットを複製します。それらは常に改訂順に表示されます。
—
デイブチェイニー