程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 如何徹底刪除SVN中的文件和文件夾(附恢復方法)

如何徹底刪除SVN中的文件和文件夾(附恢復方法)

編輯:JAVA編程入門知識

這裡假設SVN項目的目錄為 /data/svn/project,我們想排除trunk/test.exe文件和trunk/notallowed/目錄,操作步驟如下及執行的svn命令(在svn安裝目錄的bin目錄下)如下:

# 首先將svn庫整個導出
 svnadmin dump /data/svn/project > project_original.dump
 # 然後將project_original.dump文件裡面不需要的文件進行排除並生成一個新的dump文件
 type project_original.dump | svndumpfilter exclude trunk/test.exe trunk/notallowed > project_new.dump
 # 接下來創建一個新的svn項目並將上面的dump文件導入到一個新的項目中
 svnadmin create /data/svn/project_new
 svnadmin load /data/svn/project_new < project_new.dump

最後將原來的project目錄刪除並將project_new修改成project即可。需要注意的是dump命令會將svn項目中的所有修改和歷史記錄都導出來,這樣導出的dump文件會很大,而且導入的時間也比較長。

從服務器端徹底刪除SVN版本庫中部分文件夾或文件

若要徹底刪除SVN版本庫某一文件夾或文件,可采取這種方法(舉例說明):

例:假設SVN庫路徑為E:/svn/project,庫中的目錄結構為
QA/Trunk
Software/Tags/test.exe

刪除Software/Tags/目錄下的test.exe文件

操作步驟為:
把SVN庫dump出來
使用svndumpfilter過濾掉要刪除的文件
新建一個SVN庫
再將處理好的文件load到新的SVN庫裡
具體命令為:
>svnadmin dump E:/svn/project > aaa.dump
>type aaa.dump | svndumpfilter exclude /Software/Tags/test.exe > bbb.dump
>svnadmin create E:/svn/project_new
>svnadmin load E:/svn/project_new < bbb.dump

然後再將新建的project_new 重命名為project,以前的project可以移走,或是另取一個名稱.(因為在TRAC中使用的SVN目錄是project,用戶所使用的SVN目錄也是project)

此方法在SVN庫裡版本不多的情況下完全可以達到徹底刪除SVN版本庫某一文件夾或文件的效果,但是如果SVN庫裡的版本過多,在dump版本的時候會因存儲空間不足,而無法dump版本.也就無法操作了.這時須另掛能滿足其存儲空間的硬盤操作. 

SVN如何恢復已刪除文件或文件夾

用TortoiseSVN:
1.在本地working copy中,用TortoiseSVN->Show log查看版本庫的歷史記錄。可以用search。
2.找到刪除該文件或者文件夾的版本,在Log message裡右鍵Revert the changes from this revision。
3.該文件或文件夾就被恢復到本地的working copy中了。如果是誤刪除的,commit到Repository裡就行了。

用Eclipse的Subclipse插件:
1.用Team->Show SVN Repository History查看版本庫的歷史記錄。
2. 找到刪除該文件或者文件夾的版本,右鍵Revert to XX version.
3.該文件或文件夾就被恢復到本地的working copy中了。如果是誤刪除的,commit到Repository裡就行了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved