給SVN減肥




目前專案累積到整個SVN庫有6G多,所以認真的研究了怎樣減肥。

執行目錄是預設在svn專案的資料夾內

1.先查看目前最新版本,svndata是我的版本庫名字

#svnlook youngest svndata

記得把這個版本號抄下後下面會用到

2.先建立一個工作區

#mkdir temp

3.執行備份,以免出了啥狀況會真的回不去了

#svndamin hotcopy svndata temp

4.把資料倒出來

#svnadmin dump svndata -r 9487:9488 > aa.tmp

這邊我保留了9487跟9488兩個版本。多個版本號之間都用冒號分隔開來

5. 刪除舊庫

#rm -rf svndata

6. 新建立一個新庫,名字要取一樣

#svndamin create svndata

7. 把舊資料匯入

#svnadmin load svndata < aa.tmp

8. 我自己有更改一些東西,所以從舊的複製東西回去,像是conf跟hook目錄下的東西

9. 基本上已經完成了。若是會在意使用時候出現svn: E160006: No such revision XXXX 這類版本號不對的訊息的話。
可以先在別處先checkout一次後,把.svn這個目錄COPY過來就好了

例如到 /tmp 執行 svn co svn://localhost/svn專案名 –username 帳號 –password 密碼

10. 都確認沒問題之後,把剛剛生成的 aa.tmp  temp 還有臨時checkout出來的這些東西都可以刪除了