2009-09-10 90 views
4

現在我正在使用Windows XP。 如果我只是複製整個存儲庫文件夾中的可視SVN, 一旦服務器關閉,我如何通過備份的存儲庫文件夾恢復它? 另一個更好的解決方案來備份和恢復視覺svn?如何備份和恢復svn中的所有源代碼?

順便說一下,在視覺控制中備份和還原的任何方法?

回答

1

您可以複製整個目錄進出。文件是文件,對他們來說沒有任何魔力。

如果你想恢復之前做更復雜的東西,像編輯以某種方式資料庫的內容,那麼你需要轉儲和裝載。

+5

如果您在存儲庫「熱」時使用複製文件方法,則最終可能會損壞數據。提交之前的一些數據和提交之後的一些數據。 – 2011-11-10 14:58:57

+1

我不會推薦這個。 SVN倉庫應該只使用svnadmin命令來處理。 – 2017-12-04 04:36:37

+0

這不應該是上述原因的接受答案。 – teroi 2018-01-25 09:46:50

25
svnadmin dump /path/to/repository | bzip2 -9c > svn-backup.bz2 

當然,壓縮步驟是可選的。

在另一個答案中推薦的「複製樹」方法的主要優點是Subversion「轉儲」格式比Subversion在其存儲庫中大多數數據庫格式更好的歸檔格式。 (這是一種速度與簡單的折衷。)您可以在文本編輯器中讀取轉儲文件,輕鬆解析它,並且使用不同的數據庫後端將其導入到不同的Subversion存儲庫中。

恢復上述文件用:

bzip2 -dc svn-backup.bz2 | svnadmin load /path/to/repository 
+0

所以,如果我用這個傾倒我的倉庫,並承擔由此產生的文件到一個新的計算機具有相同的目錄結構,然後我就可以從庫中籤的那些文件呢? (我的存儲庫相當大,它的歷史可以追溯到幾年,我想從頭開始,但保留當前的存儲庫作爲備份)看到我的問題:http://stackoverflow.com/questions/29607055/delete-older -svn-files-from-reposititory – 2015-04-13 13:53:35

2

您應該使用svnadmin hotcopy來創建存儲庫的備份。

+0

我試過了,但系統提示「無法找到文件..... /格式」 – MemoryLeak 2009-09-10 02:59:44

+1

這是真的嗎?我讀過的所有東西,包括來自K. Fogel和B. Collins-Sussman的郵件列表筆記說,「svn dump」對備份存儲在存儲庫中的* data *是很好的。如果你想備份鎖定信息或其他信息,你可能需要hotcopy,但幾乎沒有人會這樣做,對嗎? – khedron 2011-02-28 19:09:48

1

這是我用:

#!/bin/bash 

mkdir /tmp/backup_svn 

for dir in /var/www/svn/*/ 
    do 
     dir=${dir%*/} 
     svnadmin dump "${dir}" > "/tmp/backup_svn/${dir##*/}.dmp" 
    echo "--- Dump ${dir##*/} done!" 
done 

要恢復,你需要之前創建日回購文件夾中轉儲:

svnadmin create /var/www/svn/test 

而且他們:

svnadmin load /var/www/svn/test/ < /tmp/backup_svn/test.dmp 

這個方法恢復存儲庫中的所有修訂/標籤/分支。

+0

這是轉儲所有SVN的好選擇。你甚至可以添加壓縮。 – 2017-12-04 04:37:17