1. 程式人生 > >刪除所有svn檔案(一個目錄和其各級子目錄下的) 兩種方法

刪除所有svn檔案(一個目錄和其各級子目錄下的) 兩種方法

[1]用find命令和其action來實現
[2]用rm直接實現
$ cd /tmp/xxx
$ rm -rf  `find . -name .svn`
就可以實現了。

刪除SVN目錄及從伺服器端刪除SVN版本庫檔案方法詳解

  • 在學習SVN的過程中,你可能會遇到這樣的問題,如何刪除SVN目錄?如何從伺服器端徹底刪除SVN版本庫中部分資料夾或資料夾?本文為你一一解答。

  • 刪除SVN目錄
    當使用了svn版本控制系統後每個目錄下都會有一個.svn目錄存在,開發完當交付產品或者上傳到伺服器時一般要把這些目錄刪除,這裡總結了一下在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、在專案平級的目錄,執行dos命令:
    xcopyproject_dirproject_dir_1/s/i

    2、或者在專案根目錄執行以下dos命令
    for/r.%%ain(.)[email protected]"%%a\.svn"rd/s/q"%%a\.svn"
    其實第二種方法可以用來幹很多事的,比如把程式碼中的.svn替換為任意其他檔名並在硬碟根目錄下執行,就可以從硬碟上刪除所有的這個檔案啦。

    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版本.也就無法操作了.這時須另掛能滿足其儲存空間的硬碟操作.