Команда для рекурсивного удаления всех .svn-каталогов в Windows

У меня есть каталог со многими подкаталогами. В каждой папке есть папка subversion (.svn).

Есть ли команда в Windows, которая будет проходить через каждую папку и подкаталог и удалять папку .svn?

Или мне нужно создать script или сделать это вручную?

Ответ 1

Используйте команду svn export, чтобы экспортировать рабочую копию Subversion в новую "чистую" структуру каталогов, которая не имеет .svn.

Ответ 2

Сделайте командный файл litte со следующей строкой и выполните его из родительской папки, в которой находятся каталоги .svn.

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G"

Вы также можете вывести строку ниже прямо из командной строки:

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%G"

Ответ 3

Сделайте это в PowerShell.

ПРИМЕЧАНИЕ: Это рекурсивно, поэтому убедитесь, что вы находитесь в правильном каталоге!

gci -fil '.svn' -r -force | ri -r -force

Вот остальная часть очистки исходного дерева script.

gci -fil 'bin' -r -force | ri -r -force
gci -fil 'obj' -r -force | ri -r -force
gci -fil '_ReSharper*' -r -force | ri -r -force
gci -fil '*.suo' -r -force | ri -r -force
gci -fil '*.user' -r -force | ri -r -force

Ответ 4

Если вы хотите удалить все подпапки с именем .svn в окнах затем создайте командный файл с этим контентом:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)

сохранить его в файле del_All_Dot_SVN_Folders.cmd. Запустить его. Все готово.

Благодаря http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/

Помните, что указанный выше код имеет .svn, тогда как код в ссылке имеет только * svn, поэтому его лучше чтобы иметь .svn, чтобы случайно не иметь нежелательного эффекта.

Ответ 5

Просто введите .svn в поле поиска в Проводнике файлов, затем выберите и удалите все результаты поиска (см. комментарий JB Nizet). Разумеется, этот метод также может быть использован для быстрого удаления каталогов obj и bin, например. при организации svn-архивов.

Хотя OP запросил решение для командной строки, он также указал на использование Windows и считал удаление вручную, поэтому метод File Explorer все еще можно рассматривать, особенно потому, что он является самым быстрым методом и не полагается на "инструменты", такие как svn экспорт.

Хотя OP уже выбрал принятый ответ, этот ответ может быть полезен другим. По крайней мере, это было полезно для меня, долгое время пользователь linux/windows, который предпочитает командные строки и сначала узнал об этом окне поиска: -)

скриншот проводника с поисковой системой

Ответ 6

Я знаю, что слишком поздно, чтобы ответить на это, но я думаю, что есть простой способ, если у Eclipse есть и плагин svn, установленный на вашем eclipse. Щелкните правой кнопкой мыши по проекту, перейдите в Team- > disconnect. Он откроет всплывающее окно, в котором вы выбираете первый вариант: "Также удалите метаинформацию SVN из файловой системы". Это автоматически удалит все папки SVN вместе с файлами свойств svn, которые вы иногда можете забыть при удалении только папок .svn!

Ответ 7

В качестве важного момента, если вы хотите запустить оболочку для удаления папок .svn, вам может потребоваться аргумент -depth, чтобы команда find не вводила только что удаленную директорию и отображала глупые сообщения об ошибках, такие как например,

"find: ./.svn: No such file or directory"

Чтобы избавиться от этой ошибки, вы можете использовать команду find как:

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;