題注:
部門svn版本庫自打使用就沒清理過,隨著 svn 版本庫體積的逐步增大 ,每次備份所需的時間和介質數量都在增大,而且部門 svn 服務器空間有限。因此,有必要對 svn 服務器進行定期清理。今天把svn的文檔認真的研究了一下,整理出svn版本庫清理的方法,特放到網上,供有類似需求的同志們參考。
Svn 清理方法
經過研究分析,比較可行的 Svn 庫的清理方法有兩種:
1 、 dump 方法 ( 推薦 )
使用 svn 的 dump 命令,將整個 svn 庫備份出來,再使用 svnfilter 命令進行剔除不需要保留的項目( exclude )操作或進行僅包含需要保留項目( include )操作形成新的 dump 文件,然后新建一個 svn 庫,將新 dump 文件導入新庫中,最后刪除舊庫,把新庫更名為舊庫的名字。
這種方法的優點是新庫中項目的版本修訂歷史得以保留,比較方便回溯;缺點是操作起來比較費時。
操作命令:
使用 ssh 客戶端登錄到 svn 服務器:
1) 執行 svnadmin dump /path/to/repo >dumpfile ,備份 project 庫;
2) 執行 svnadmin create newrepo ,創建新庫 newrepo ;
3) 執行 svndumpfilter include proj1 … <dumpfile >proj1-dumpfile
4) 執行 svnadmin load newrepo < proj1-dumpfile
5) 刪除舊庫 project ,將新庫更名為 project 。
2 、 export/import 方法
使用 export 命令,將 svn 庫中需要保留的項目的最新版本導出,再新建一個 svn 庫,導入上一步中導出的項目文件到新庫中,最后刪除舊庫,把新庫更名為舊庫的名字。
這種方法的優點是操作簡單,實施較快,缺點是導入到新庫的項目不包含版本修訂歷史,無法回溯。
操作命令:
1) 在本地 pc 機( windows 系統)上,新建一個空目錄(假定為 d:/svn );
2) 在此目錄下單擊鼠標右鍵,選擇 tortoise svn 菜單中的 export 菜單項,導出需要保留的項目;
3) 使用 ssh 客戶端登錄到 svn 服務器,執行 svnadmin create project2 ,創建新庫 project2 ;
4) 在此目錄下單擊鼠標右鍵,選擇 tortoise svn 菜單中的 import 菜單項,導入本地目錄下的項目到 project2 庫中;
使用 ssh 客戶端登錄到 svn 服務器,刪除舊庫 project ,將新庫更名為 project 。
新聞熱點
疑難解答