Удаление svn checkout с помощью NAnt - PullRequest
3 голосов
/ 19 июня 2009

Я пытаюсь удалить папку, которая является svn checkout моего проекта, чтобы я мог сделать новую проверку. Проблема заключается в том, что всякий раз, когда я пытаюсь удалить эту папку с помощью задачи удаления 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>

Любые идеи будут с благодарностью!

Ответы [ 2 ]

3 голосов
/ 19 июня 2009

@ джиттер, вы были очень близки

сначала нет dirset, я получил ошибку при попытке использовать это. вот что на самом деле сработало

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

набор файлов будет включать в себя каталоги, если у вас есть правильный выбор. Я думаю, что ключ использовал d efaultexcludes="false" и

**/.svn/**/*

, который правильно выбирает подпапку папок .svn.

Спасибо!

2 голосов
/ 19 июня 2009

Если вы хотите удалить весь каталог соединительных линий

<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 именно то, что вы пытались включить)

...