刪除SVN目錄及從服務器端刪除SVN版本庫文件方法詳解
刪除SVN目錄
當使用了svn版本控制系統(tǒng)后每個目錄下都會有一個.svn目錄存在,開發(fā)完當交付產品或者上傳到服務器時一般要把這些目錄刪除,這里總結了一下在linux和win下的辦法。
一、在linux下刪除SVN
刪除這些目錄是很簡單的,命令如下
find.-typed-name".svn"|xargsrm-rf
或者
find.-typed-iname".svn"-execrm-rf{}\;
全部搞定。(http://tech.techweb.com.cn/redirect.php?fid=26&tid=205673&goto=nextnewset)
二、在windows下刪除SVN用以下法子:
1、在項目平級的目錄,執(zhí)行dos命令:
xcopyproject_dirproject_dir_1/s/i
2、或者在項目根目錄執(zhí)行以下dos命令
for/r.%%ain(.)do@ifexist"%%a\.svn"rd/s/q"%%a\.svn"
其實第二種方法可以用來干很多事的,比如把代碼中的.svn替換為任意其他文件名并在硬盤根目錄下執(zhí)行,就可以從硬盤上刪除所有的這個文件啦。
3、加注冊表
JonGalloway提供了一段注冊表代碼,可以將”DeleteSVNFolders”命名增加到資源管理器的右鍵上,這樣,鼠標點兩下就能把選中目錄下的所有.svn目錄干掉了。Worksjustgreat!
代碼為:
WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]@=”DeleteSVNFolders“[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]@=”cmd.exe/c\”TITLERemovingSVNFoldersin%1&&COLOR9A&&FOR/r\”%1\”%%fIN(.svn)DORD/s/q\”%%f\”\”“將這段代碼保存為一個.reg文件,雙擊確認導入注冊表即可。
從服務器端徹底刪除SVN版本庫中部分文件夾或文件夾
若要徹底刪除SVN版本庫某一文件夾或文件,可采取這種方法(舉例說明):
例:假設SVN庫路徑為E:\svn\project,庫中的目錄結構為
QA/Trunk
Software/Tags/test.exe
刪除Software/Tags/目錄下的test.exe文件
操作步驟為:
把SVN庫dump出來
使用svndumpfilter過濾掉要刪除的文件
新建一個SVN庫
再將處理好的文件load到新的SVN庫里
具體命令為:
>svnadmindumpE:\svn\project>aaa.dump
>typeaaa.dump|svndumpfilterexclude/Software/Tags/test.exe>bbb.dump
>svnadmincreateE:\svn\project_new
>svnadminloadE:\svn\project_new<bbb.dump
然后再將新建的project_new重命名為project,以前的project可以移走,或是另取一個名稱.(因為在TRAC中使用的SVN目錄是project,用戶所使用的SVN目錄也是project)
此方法在SVN庫里版本不多的情況下完全可以達到徹底刪除SVN版本庫某一文件夾或文件的效果,但是如果SVN庫里的版本過多,在dump版本的時候會因存儲空間不足,而無法dump版本.也就無法操作了.這時須另掛能滿足其存儲空間的硬盤操作.
【編輯推薦】