2011-12-08 155 views
3

我使用svnadmin轉儲將我們的存儲庫轉儲爲平面文件。我有一個cmd文件貫穿它們。然後,我使用另一個cmd文件,首先使用svnadmin create repositoryname在新服務器上創建存儲庫,然後將平面文件信息加載到相應的存儲庫中。因此,它看起來像這樣:將Subversion從一臺服務器移動到另一臺

  • 服務器1:

    svnadmin dump repository1 --incremental > z:\newserversharedrive\repositories\dumpfile1 
    
  • 服務器2:

    svnadmin create repository1 
    svnadmin load e:\..\repositories\repository1 < dumpfile1 
    

的問題是,一旦做到這一點,在svnserve.conf文件從舊版本庫中未複製到服務器2中。

有沒有辦法使用svnadmin來編寫腳本,這樣svnserve.conf文件也會被複制?

沒有這個,我將不得不進入每個存儲庫的conf目錄並編輯svnserve.conf文件。

謝謝 bramoin

回答

1

我問我們SVN管理員,他們給了我下面的建議:

  • 他們使用svnserve.conf不,相反,他們使用ApacheSVN。
  • 他們不認爲您將存儲庫從一臺服務器複製到另一臺的藝術是最先進的。相反,他們使用了以下技術:

    Computer A (old server) 
    Computer B (new server) 
    
    Login on computer B and from there do: 
    #svnadmin create repoB 
    #ssh -C compA "svnadmin dump /pathA/repoA" | svnadmin load /pathB/repoB --force-uuid 
    #scp compA:/path/repoA/conf/svnserve.conf /pathB/repoB/conf/ 
    
  • 如果您還有其他關於庫在服務器A上的工作,你必須做到以下幾點:

    #ssh -C compA "svnadmin dump /pathA/repoA --incremental -r oldcopiedRev:oldlastRev" | svnadmin load /pathB/repoB 
    

    然後,您將獲得缺失的修訂到服務器B.

您是否試圖將svnserve.conf文件從一臺服務器複製到另一臺?我還沒有發現任何依賴於舊服務器或新服務器的服務器IP的信息,因此一份副本應該可以正常工作。

+0

雖然這是一個很好的答案,但問問題的人是在Windows上運行的(注意'cmd文件'和對'e:\ .. \ repositories \ repository1'的引用)。 :) –

+0

嗯,你是對的。我會讓它留下來,也許這對其他人有用。 – mliebelt

相關問題