2010-08-12 29 views
5

我一直在閱讀svnsync來創建我們倉庫的只讀副本,但我並不真正瞭解倉庫的只讀副本是什麼。如果由於某種原因,主服務器出現故障,只讀副本會變成可讀/寫的,這樣人們可以承諾它?如果不是,那麼只讀副本有什麼意義?通過svnsync存儲庫的只讀副本有什麼意義?

回答

4

由svnsync維護的只讀存儲庫通常設置爲提供近似實時的主存儲庫備份。該副本被認爲是隻讀的,因爲通過除svnsync以外的方式對其進行更改會阻止svnsync正常工作。

在主存儲庫丟失的情況下,您的備份存儲庫可以成爲新的主存儲器。出於所有實際目的,副本與最後一次運行svnsync時的原始主副本相同。您可以通過從備份存儲庫複製文件並像以前一樣繼續重建原始存儲庫。

或者,具有基於原始主服務器的工作目錄的客戶端可以執行svn switch --relocate操作來更新服務器URL以指向副本並繼續正常工作。當然,一旦客戶端開始使用備份進行提交,那麼它就不再是svnsync命令的目標,並且有效地成爲一個新的主存儲庫,您將需要創建一個新的備份。

1

我不知道你是否可以讓你同步讀取/寫入,但有很多情況下,當你想檢查一個存儲庫的內容,而不允許它連接到它。下面兩種情況非常相似,我們在這個地方做我的工作:

  • 想象這是一個公開的開源項目,你可以允許退房的任何人,但只希望通過補丁程序或bug報告的貢獻(該副本也放在公共服務器上,主要服務器保存在受保護的專用網絡中)。

  • 您可能希望通過自動構建系統(或某些分析工具)中的svn導出來使用svn的內容,但選擇不是全部同步,而只是在主svn處於穩定狀態時想象一些中間提交會使代碼處於代碼不編譯的不穩定狀態)。

2

假設你在談論自己的私人倉庫,兩個原因的任何一個讀/唯一副本 - 數據庫或源代碼庫或XYZ - 對減輕負荷,提高性能。

如果您正在存儲庫上運行任何類型的分析,比如說涉及每個修訂版的流程,那麼這可能會給主存儲庫帶來高負載,從而降低開發人員的性能。同步讀取/唯一拷貝是一種減輕負載的方法,使您可以完成工作而不會導致關鍵用戶降級。

類似的參數可以通過延遲進行 - 從本地只讀副本(實質上是一個緩存)更容易拉下來,而不是通過VPN或類似鏈接從另一個辦公室拉出。

0

備份你最喜歡的開源程序來源:)。

相關問題