SVN早期版本庫曆史的刪除
最近我的機器磁盤空間發現嚴重不足,找來找去,隻找到可以拿SVN版本庫開刀。我主要使用SVN存放需要在家裏台式機和工作的筆記本之間需要同步的內容,如個人文檔、程序源碼、臨時照片、課件等等。除了個人文檔和程序源碼,幾乎不存在需要保留長期曆史的需求。僅僅是因為我是程序員,選擇了SVN作為我的文件同步工具。
言歸正傳,下麵介紹一下環境:
軟件環境:
Windows XP SP2 32bit
Apache 2.2.14
Subversion 1.6.6
TortoiseSVN 1.6.6.17493
SVN版本庫位置:D:/SVNRepository,占地3.34G
步驟:
1.準備工作
停止運行中的Apache。
打開命令行提示符,輸入命令:
svnlook youngest d:/SVNRepository
,查看當前最新的版本號,顯示最新版本記錄為755。
2.備份版本庫
(很重要,我在嚐試過程中出現過失敗,幸虧有備份,不然就over了)
把D盤的版本庫,備份到C盤,同時清除曆史日誌,輸入命令:svnadmin hotcopy --clean-logs d:/SVNRepository c:/SVNRepository
,這樣備份後版本庫從3.34G變為3.24G。
3.dump需要保留的版本
我最初選擇保留700-755的版本,但是在這一步運行過程中出現這樣一段話: * 已轉存版本 739。
* 已轉存版本 740。
警告: 版本 535 的參考數據比最舊的轉存數據版本 (700)還舊。
警告: 裝載這個轉存到空的版本庫會失敗。
* 已轉存版本 741。
我沒有太在意,結果從dump恢複版本庫時出現錯誤,屏幕顯示:svnadmin: 當前版本庫不存在相對源版本 -164,並終止運行。導致我使用備份庫進行dump。
跳過這段,直接說正確的方法。輸入:svnadmin dump c:/SVNRepository -r 745:755 > d:/repo_dump_745_755.dmp
,3.24G的版本庫dump出來後變成760M,苗條不少。
4.刪除就版本庫
輸入命令:rmdir /s/q d:/SVNRepository
,刪除舊版本庫。也可以直接在資源管理器裏刪除。
5.創建空的版本庫
輸入命令:svnadmin create d:/SVNRepository
,檢查空的版本庫大概31.2K大小。
6.把dump文件導入版本庫
輸入命令:svnadmin load d:/SVNRepository < d:/repo_dump_745_755.dmp
,這時屏幕上會顯示正在載入版本庫中的文件或正在提交/裝載的版本。完成後,用命令svnlook youngest d:/SVNRepository
查看,顯示當前版本庫最新版本號是11,整個版本庫大小501M。
至此,SVN版本庫瘦身成功,騰出空間2.7G,大致相當於騰出原SVN庫近5/6的空間!
最後更新:2017-04-02 04:01:43