⑴ 如何徹底刪除SVN中的文件和文件夾(附恢
這里假設SVN項目的目錄為 /data/svn/project,我們想排除trunk/test.exe文件和trunk/notallowed/目錄,操作步驟如下及執行的svn命令(在svn安裝目錄的bin目錄下)如下:
# 首先將svn庫整個導出
svnadmin mp /data/svn/project > project_original.mp
# 然後將project_original.mp文件裡面不需要的文件進行排除並生成一個新的mp文件
type project_original.mp | svnmpfilter exclude trunk/test.exe trunk/notallowed > project_new.mp
# 接下來創建一個新的svn項目並將上面的mp文件導入到一個新的項目中
svnadmin create /data/svn/project_new
svnadmin load /data/svn/project_new < project_new.mp
最後將原來的project目錄刪除並將project_new修改成project即可。需要注意的是mp命令會將svn項目中的所有修改和歷史記錄都導出來,這樣導出的mp文件會很大,而且導入的時間也比較長。
從伺服器端徹底刪除SVN版本庫中部分文件夾或文件
若要徹底刪除SVN版本庫某一文件夾或文件,可採取這種方法(舉例說明):
例:假設SVN庫路徑為E:/svn/project,庫中的目錄結構為
QA/Trunk
Software/Tags/test.exe
刪除Software/Tags/目錄下的test.exe文件
操作步驟為:
把SVN庫mp出來
使用svnmpfilter過濾掉要刪除的文件
新建一個SVN庫
再將處理好的文件load到新的SVN庫里
具體命令為:
>svnadmin mp E:/svn/project > aaa.mp
>type aaa.mp | svnmpfilter exclude /Software/Tags/test.exe > bbb.mp
>svnadmin create E:/svn/project_new
>svnadmin load E:/svn/project_new < bbb.mp
然後再將新建的project_new 重命名為project,以前的project可以移走,或是另取一個名稱.(因為在TRAC中使用的SVN目錄是project,用戶所使用的SVN目錄也是project)
此方法在SVN庫里版本不多的情況下完全可以達到徹底刪除SVN版本庫某一文件夾或文件的效果,但是如果SVN庫里的版本過多,在mp版本的時候會因存儲空間不足,而無法mp版本.也就無法操作了.這時須另掛能滿足其存儲空間的硬碟操作.
SVN如何恢復已刪除文件或文件夾
用TortoiseSVN:
1.在本地working 中,用TortoiseSVN->Show log查看版本庫的歷史記錄。可以用search。
2.找到刪除該文件或者文件夾的版本,在Log message里右鍵Revert the changes from this revision。
3.該文件或文件夾就被恢復到本地的working 中了。如果是誤刪除的,commit到Repository里就行了。
用Eclipse的Subclipse插件:
1.用Team->Show SVN Repository History查看版本庫的歷史記錄。
2. 找到刪除該文件或者文件夾的版本,右鍵Revert to XX version.
3.該文件或文件夾就被恢復到本地的working 中了。如果是誤刪除的,commit到Repository里就行了。
⑵ 如何徹底刪除SVN中的文件和文件夾
徹底刪除SVN中的文件和文件夾的方法
一、工具/原料
Eclipse
svn
二、方法/步驟
1、首先,選中要刪除的文件點擊Delete。
⑶ SVN 批量刪除或添加文件
SVN批量刪除文件
svn status | grep ! | awk '{print $2}' | xargs svn delete
1、首先svn status查看svn狀態,列出所有改動,打!號的是已經刪除的文件但是還未標記成從庫中除去。
2、grep ! 將這些文件單獨抽離出來,此時如果不執行後面的語句,呈現的內容應該是類似 ! filepath/image/image.jpg
3、再用 awk '{print $2}' 將抽離出來的文本結果處理,留下每一行的第二段文字,即後面的文件名, 此處必須注意,svn status|grep ! 和後面的語句 |awk '{print $2}'|xargs svn delete之間,必須有一個空格,否則終端還是會認為這個!號是特殊符號.
4、最後就可以直接遞交給svn delete命令了,使用xargs這個參數構造命令,將每一行的文本作為參數提供給svn del,結果就是所有列出的文件都執行了一遍del了。
注意:
有時刪除圖片倍圖,帶有@符號的時候,報錯 a peg revision is not allowed here 。解決方法在文件後添加@符號,例如,刪除一張圖片 svn delete filepath/[email protected]@,這樣就可以刪除成功了。
SVN批量添加文件
幾乎和上面批量刪除一樣,不同的是svn標記的符號不一養,使用的是問號
svn status|grep ? |awk '{print $2}'|xargs svn add
處理好之後就可以 svn commit -m "..."
⑷ 如何徹底刪除SVN中的文件和文件夾
在SVN的服務端中,無法刪除文件,只能刪除文件夾。
那麼,我們可以點擊任意一個文件,單擊右鍵->TortoiseSVN->版本庫瀏覽器;
在彈出的URL界面中,填寫正確的需要刪除文件的URL路徑,然後點擊確定
找到那個需要刪除的文件,點擊右鍵,就會出現刪除的按鈕了,那麼這樣就可以刪除那個SVN中的單個文件了。