前言
SVN占用的空間隨著項目版本迭代越來越大,因為保存了歷史記錄中的各個版本,所以即使本地把廢棄的目錄刪掉提交,也不會釋放出多余的空間,大概率因為操作刪除增加了一個版本號,使得占用的空間更大了。
怎么才能讓它的空間變小的,最簡單粗暴的方式就是丟棄歷史記錄,在最新的版本中剔除的廢棄的目錄直接上傳創(chuàng)建一個新的倉庫,這樣操作后所有的人需要重新下載才行,如果想保留歷史記錄,就要用到今天說的這種備份、過濾、再導入的方式了。
簡要步驟
假設(shè)svn庫A在服務器上的路徑是:/data/svndata/repos/A
,需要刪除的文件路徑為 /arts/tmp/pictures
,注意要過濾的文件夾路徑以 /
開頭,其實代指起始目錄 A
。
操作的步驟如下:
//1.備份
svnadmin dump /data/svndata/repos/A > A.dump
//2.過濾掉廢棄目錄
cat A.dump | svndumpfilter exclude /arts/tmp/pictures > B.dump
//3.創(chuàng)建新的庫
svnadmin create /data/svndata/repos/B
//4.導入新庫
svnadmin load /data/svndata/repos/B < B.dump
//5.重命名老庫
mv A A_backup
//6.重命名新庫代替老庫
mv B A
操作示例
操作過程使用的是一個真實的SVN倉庫,就是按照上面的步驟試了一次,主要想看下是不是傳說中的那么耗時,倉庫名為R,數(shù)據(jù)量115G,共10843個版本。
-
導出備份文件
# svnadmin dump/data/svndata/repos/R > r.dump * Dumped revision 0. * Dumped revision 1. * Dumped revision 2. ...
完整導出用了2小時40分鐘,導出文件大小為514G,數(shù)據(jù)量翻了近5倍。
-
過濾掉指定目錄
# cat r.dump | svndumpfilter exclude /arts/tmp/pictures > r-exclude.dump Excluding prefixes: '/arts/tmp/pictures' Revision 0 committed as 0. Revision 1 committed as 1. Revision 2 committed as 2. Revision 3 committed as 3. Revision 4 committed as 4. ...
將/arts/tmp/pictures目錄過濾掉,總共用時58分鐘,過濾后的備份文件大小442G
-
創(chuàng)建新的臨時倉庫
# svnadmin create r-new
-
將過濾后的備份文件導入新庫
# svnadmin load ./r-new < r-exclude.dump <<< Started new transaction, based on original revision 1 * editing path : arts ... done. * editing path : develop ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * editing path : develop/client ... done. * editing path : develop/server ... done. ------- Committed revision 2 >>> ...
導入工作從第一個版本依次應用,總共用時4小時。
這個過程真的是很慢,完整用時近8小時,并且對磁盤空間要求很大,另外還有個接近1萬個版本號大小為800G的庫,在24核機器上僅導出就花了41小時,備份文件大小4.5T,后面我就沒試了,磁盤快滿了。文章來源:http://www.zghlxwxcb.cn/news/detail-420975.html
總結(jié)
- 備份
svnadmin dump /data/svndata/repos/A > A.dump
- 過濾
cat A.dump | svndumpfilter exclude /arts/tmp/pictures > B.dump
- 建新
svnadmin create /data/svndata/repos/B
- 導入
svnadmin load /data/svndata/repos/B < B.dump
朝氣蓬勃的孩子真的可愛,可是我還是想長大,這樣才有機會掌控節(jié)奏,雖然現(xiàn)在看起來像個提線木偶,但正在嘗試突破束縛~文章來源地址http://www.zghlxwxcb.cn/news/detail-420975.html
到了這里,關(guān)于SVN通過備份、過濾、再導入的方式徹底刪除廢棄目錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!