基礎描述
要徹底刪除SVN版本庫某一文件夾或文件,可採取這種方法(舉例說明):
例:假設SVN庫路徑爲E:/svn/project,庫中的目錄結構爲
Trunk
Software/test.exe
刪除Software/目錄下的test.exe文件
操作步驟爲:
1、 把SVN庫dump出來
2、 使用svndumpfilter過濾掉要刪除的文件
3、 新建一個SVN庫
4、 再將處理好的文件load到新的SVN庫裏
具體命令爲:
svnadmin dump E:/svn/project > aaa.dump
cat aaa.dump | svndumpfilter exclude /Software/test.exe > bbb.dump
svnadmin create E:/svn/project_new
svnadmin load E:/svn/project_new < bbb.dump
然後再將新建的project_new 重命名爲project,以前的project可以移走,或是另取一個名稱.
此方法在SVN庫裏版本不多的情況下完全可以達到徹底刪除SVN版本庫某一文件夾或文件的效果,但是如果SVN庫裏的版本過多,在dump版本的時候會因存儲空間不足,而無法dump版本.也就無法操作了.這時須另掛能滿足其存儲空間的硬盤操作.
總結
- svnadmin create是新建svn倉庫;
- svnadmin dump是依據當前svn倉庫做的備份;備份裏包含所有文件和版本歷史追溯信息。dump後的文件大小預計跟倉庫容量大小是一致的。
- svndumpfilter是依據並編輯倉庫備份,使得對svn倉庫做篩選過濾;
- svnadmin load是依據備份,產生新的svn倉庫。
- svnadmin或者svndumpfilter,都是針對倉庫文件所在目錄操作。而非svn的倉庫地址svn://192.168.1.101/project而言。