Subversion

SVN遷移——

  • March 9, 2019

我需要將具有大量儲存庫的 SVN 伺服器遷移到新伺服器。舊伺服器是建立在有問題的遺留作業系統上的,所以我決定重建它。

我只知道一些關於 SVN 使用的基礎知識,我不確定是否需要採用轉儲/載入路線,或者是否可以使用 svnsync 遷移到新伺服器。

我一直在尋找用於“只讀”鏡像的 svnsync 的參考資料。這不正是我想要的。我正在嘗試將所有數據從現有的 SVN 伺服器 A 遷移到新創建的 SVN 伺服器 B。

完成後,伺服器 A 將消失,所有 SVN 使用者都將使用伺服器 B。

到目前為止,我已經創建了新的 SVN 伺服器並創建了(空)儲存庫。

只是為其他有同樣問題的人發帖。問題歸結為 svnsync 是僅用於鏡像還是可用於遷移。

引用來自Google群組的戴夫安德森的意見:


它可用於執行遷移,並且是執行遷移到 Google Code 的唯一方法。Subversion 書中的警告應該讀作:“如果您想要只讀鏡像,請確保您永遠不要手動送出任何內容,否則 svnsync 將無法再從主記憶體儲庫同步”。

但是,在內部,svnsync 是一個微不足道的程序:它從一個伺服器請求修訂流,並在另一台伺服器上重放這些修訂。只要目標伺服器沒有分歧(即沒有任何送出不在源中),那麼 svnsync 可以增量執行以保持同步。但您也可以只執行一次,同步兩個儲存庫,然後丟棄原始儲存庫並開始使用同步的副本。

至於 dump/load 和 svnsync 的區別,基本區別在於 svnsync 完全通過公共伺服器 API 工作,而 dump/load 直接對儲存庫文件進行操作。兩種機制都能為您提供完全相同的數據,但僅實現 svnsync 對我們來說要簡單得多。實施轉儲/載入將需要額外的開發時間和資源,但收益不大。從歷史上看,dump/load 最初更容易擁有,但隨著時間的推移,需要一種公開的方式來進行增量 dump/load 變得很明顯,並且 svnsync 應運而生。

所以,底線:是的,使用 svnsync。如果您遵循文件,請將 Google 程式碼視為您的“只讀鏡像”。同步完成後,只需刪除(或存檔和備份 :) 您的本地儲存庫,然後像往常一樣開始使用 Google 程式碼儲存庫。

希望這會有所幫助, - 戴夫

引用自:https://unix.stackexchange.com/questions/204192