2009-06-19 48 views
3

我試圖刪除一個文件夾,這是我的項目svn結帳,以便我可以做一個新的結帳。問題是,每當我試圖刪除這個文件夾使用惡性刪除任務,我不斷收到以下錯誤:刪除與NAnt的svn結賬

[delete] Deleting directory 'C:\projects\my_project\Trunk'. 

BUILD FAILED 

c:\Projects\my_project\default.build(63,4): 
Cannot delete directory 'C:\projects\my_project\Trunk\SomeFolder\AnotherFolder'. 
    The directory is not empty. 

有沒有竅門刪除與惡性這裏工作副本?我試過只做.svn目錄的刪除目標,但是由於某種原因,nant不會刪除它們。這是我正在使用的任務,但它沒有工作:

<delete> 
     <fileset basedir="myproject\trunk"> 
      <include name="\**\.svn" /> 
     </fileset> 
    </delete> 

任何想法將不勝感激!

回答

2

如果你想刪除整個軀幹目錄

<delete dir="myproject/trunk" /> 

我現在不能確認是否<include ... />甚至能夠選擇的目錄而不是文件。

不然,如果你只是想刪除.svn目錄

<delete> 
    <dirset basedir="myproject\trunk" defaultexcludes="false"> 
     <include name="**/.svn" /> 
    </dirset> 
</delete> 

我以前dirset因爲我不知道,如果fileset甚至選擇目錄。也許它被解釋爲「給我這被命名爲的.svn所有文件」 注意使用defaultexcludes="false"這裏檢查<fileset documentation>的defaultexcludes是什麼(例如**/.svn你嘗試過什麼,包括)

+0

請參閱下面的回覆。關閉 – 2009-06-19 15:18:44

3

@jitter,你非常接近

首先沒有dirset,我試圖使用這個時出錯。這裏是實際工作

<delete> 
    <fileset basedir="myproject\trunk" defaultexcludes="false"> 
    <include name="**/.svn" /> 
    <include name="**/.svn/**/*" /> 
    </fileset> 
</delete> 

如果您有正確的選擇,文件集將包括目錄。我認爲,關鍵是用d efaultexcludes="false"和使用

**/.svn/**/* 

其正確選擇.svn目錄的子目錄。

謝謝!

+0

嗯,我既沒有安裝.NET也沒有安裝NAnt,只是在他們的網站上寫了文檔。還有一個dirset。 http://nant.sourceforge.net/release/latest/help/types/dirset.html。並且在CVS中也是http://nant.cvs.sourceforge.net/viewvc/nant/nant/src/NAnt.Core/Types/DirSet.cs?revision=1.2&view=markup。也許這是在最近的版本中添加的 – jitter 2009-06-19 18:08:52