- 相關推薦
SVN(subversion)早期版本的刪除
導語:PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,主要適用于Web開發領域。下面我們來看看SVN(subversion)早期版本的刪除去具體怎么操作,希望對大家有所幫助。
具體作業過程如下:
準備工作
停止apache服務器,修改版本庫目錄路權限為root的方式,阻止所有的用戶使用該版本庫。重啟apache,這樣可保證其他版本庫的用戶繼續使用。
備份原有版本庫。
版本庫全備份可以采用svnadmin dump和svnadmin hotcopy兩種方法。在整個過程中兩種方法都會用到。首先作為版本庫全備份,以防將來出現作業錯誤時可以立刻恢復原有版本庫的操作,建議使用svnadmin hotcopy。一方面這樣的備份速度比較快,另一方面備份的結果就是一個可以立刻使用的版本庫,在需要恢復的時候直接拷貝回去就行了。具體命令如下:
svnadmin hotcopy --clean-logs /path/to/repo ./hotcopy >hotcopy.log 2>hotcopy_err.log &
備份的結果就是一個目錄,尺寸基本和原版本庫相同,47G。
dump版本庫需要保留的版本。
通過svnlook youngest /path/to/repo命令可以看到版本庫最后的版本是多少。我要作業的版本庫是14079。經過跟對方公司協商,決定保留10000到14079之間的版本。因此需要從版本庫把10000以后的版本dump出來。具體命令如下
svnadmin dump /path/to/repo -r 10000:14079 > repo_dump_10000-14079.dmp 2>repo_dump_10000-14079.log &
dump出來的文件大約34G。
查看一下日志文件,確定所需要的版本都被正確的dump下來了。
重建版本庫
rm -rf /path/to/repo
svnadmin create /path/to/repo
注意這里面沒有使用 --fs-type bdb參數,因此創建出來的版本庫是FSFS后端的。后面還會繼續解釋為什么這么做。
重新導入新版本
svnadmin load /path/to/repo < repo_dump_10000-14079.dmp > repo_load.log 2>repo_load_err.log &
檢查一下日志文件,看看load是否成功。用svnlook命令看看load以后版本庫的最新版本。
修改版本庫權限
chown -R apache:apache /path/to/repo
到此為止版本庫的歷史版本刪除工作就結束了。需要注意的是,新建出來的版本庫的最新版本應該是4080。另外,經過觀察,新創建出來的版本尺寸只有2.7G。這個結果曾經一度讓我懷疑load沒有成功。但是事實上確實如此。需要說明的是,原來那個占了47G的版本庫就是BDB格式的。我又試著創建了一個BDB后端的版本庫,用同樣的方式把dump文件導進去,結果版本庫的尺寸接近30G。而且導入的速度來看也明顯比向FSFS后端版本庫導入要慢很多。大概多了一個多小時的時間。可見BDB后端和FSFS后端版本庫在某種情況下的尺寸差距驚人的大。手冊是雖然也說了FSFS會比BDB小一些,但是絕對沒想到會小那么多。subversion現在主推FSFS格式是有道理的。但是我總覺得畢竟BDB歷史更悠久一些,也更穩定一些。所以在今后硬盤空間不緊張的前提下,我還是傾向于使用BDB后端格式。
【SVN(subversion)早期版本的刪除】相關文章:
怎么刪除Word中無法刪除的線條09-07
Java的不同版本10-28
wps文字如何刪除頁10-02
Word怎么批量刪除圖片10-24
photoshop哪個版本好用07-16
php上傳與刪除圖片的簡單范例10-13
Linux文件的復制 刪除與移動教程09-09
word怎么刪除一頁10-03
Win8如何刪除賬戶08-12
如何選擇PHP版本09-26