Svn

創建 SVN 鏡像的最佳方法?

  • October 28, 2021

我目前正在研究設置 SVN 鏡像的最佳方法。我目前看到三種可能性,都有各自的缺點:

  • 有一個通過 svnsync 阻塞和同步的 SVN post-commit-Hook。這裡的問題很明顯,送出是阻塞的,直到數據傳輸到鏡像。
  • 有一個非阻塞的 SVN post-commit-Hook,並通過 svnsync 同步。在這裡,我看到了以下更微妙的問題:想像有人簽入一個大文件,然後不久其他人簽入一個小文件。因為送出是非阻塞的,所以兩個 svnsync 程序可以同時執行,並且小文件可能會在通往鏡像的途中超過大文件(這似乎非常耗時且不太可能,儘管原則上是可能的)。他們的修訂將交換。
  • 每隔 15 分鐘同步一次 cron-job。如果送出時間超過 15 分鐘並且顯然存在時間延遲,則會出現同樣的問題。

我忘記了一種可能性嗎?我是不是搞錯了什麼?有任何想法嗎?已經謝謝你了!

也許我應該注意到第二種可能性是不同網站建議的。例如參見 http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync

您可以嘗試一種類似於我們在 Atlassian 使用的方法

https://www.atlassian.com/blog/archives/subversion_replication_at_atla?_ga=2.217251286.1933127788.1517539727-1159165484.1517539727

*免責聲明:*我目前是 Atlassian 員工,但未參與實施此解決方案(僅維護它)

正如我在上面的評論中所說,從遠端儲存庫執行的 svnsync 的行為具有確定性。它不能亂序應用變更集。因此,使用遠端儲存庫的唯一問題是變更集傳播導致的延遲量。

引用自:https://serverfault.com/questions/118648