如何正確地將 SVN 儲存庫從 VisualSVN Server (Windows) 傳輸到 Apache SVN (Linux)?

如何正確地將 SVN 儲存庫從 VisualSVN Server (Windows) 傳輸到 Apache SVN (Linux)?

我的目標是將舊的 SVN 儲存庫從 Windows VisualSVN 伺服器轉移到 Linux Apache SVN 伺服器。第一步是使用 svnadmin dump 指令轉儲所有儲存庫。之後我將這些轉儲載入到我的 Linux 伺服器中。我導入存儲庫時沒有錯誤。但是,對於某些文件,我在提交更改時收到 500 內部伺服器錯誤。

為了檢查問題所在,我在網頁瀏覽器中開啟了一些產生錯誤的檔案。我發現這些文件的最後幾行已損壞。沒有資料遺失,但文件末尾有奇怪的字元。它們顯示為:“???”在我的網頁瀏覽器中。

我嘗試進行多次導出,但所有導出都會導致相同的問題。是否可以更正儲存庫或轉儲?你知道我該如何防止這種情況發生嗎?

答案1

  • AFAICR,某些版本先前儲存庫的結構|資料|儲存發生了一些變化:如果 VisualSVN Server 和 apache 端的 Subversion 版本相同(即升級 VisualSVN Server,如果需要)
  • 從 FS 角度來看,VisualSVN Server 中的儲存庫和 Linux 的 Apache 是相同的 - 只是包含檔案的目錄和一些非儲存庫檔案。因此,在最簡單的情況下,您可以將樹從RepoRoot 複製到新伺服器(根據新作業系統要求修復所有者和權限),添加(舊)密碼檔案(如果需要),放置在repo-tree 和(舊)authz 之外-file(如果需要),將 svn 相關部分從 VisualSVN Server 的 httpd.conf 遷移到新環境(應用所有需要的更改,主要與路徑相關),並將儲存庫放在新位置

PS:我執行的這種懶惰的「複製貼上」遷移沒有太大的麻煩

提交時出現 500 內部伺服器錯誤

可能有兩個主要原因:未遷移用戶庫和|或忘記了 authz 文件中的 ACL(可能丟失或為空) - 存儲庫轉儲不會傳輸這些文件

相關內容