我正在尝试删除一个svn签出项目的文件夹,以便我可以进行新的结帐。问题是每当我尝试使用nant删除任务删除此文件夹时,我一直收到以下错误:
[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.
是否有一个删除nant工作副本的技巧?我尝试仅针对.svn目录进行删除,但由于某种原因,nant不会删除所有目录。这是我正在使用的任务,但它不起作用:
<delete>
<fileset basedir="myproject\trunk">
<include name="\**\.svn" />
</fileset>
</delete>
任何想法都将不胜感激!
答案 0 :(得分:3)
@jitter,你非常接近
首先没有dirset,我在尝试使用它时遇到错误。这是实际工作的
<delete>
<fileset basedir="myproject\trunk" defaultexcludes="false">
<include name="**/.svn" />
<include name="**/.svn/**/*" />
</fileset>
</delete>
如果您有正确的选择, fileset将包含目录。我认为关键是使用d efaultexcludes="false"
并使用
**/.svn/**/*
正确选择.svn文件夹的子文件夹。
谢谢!
答案 1 :(得分: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>
查看违规行为(例如,**/.svn
确切包含的内容)