Ответ 1
Используйте команду svn export
, чтобы экспортировать рабочую копию Subversion в новую "чистую" структуру каталогов, которая не имеет .svn
.
У меня есть каталог со многими подкаталогами. В каждой папке есть папка subversion (.svn).
Есть ли команда в Windows, которая будет проходить через каждую папку и подкаталог и удалять папку .svn?
Или мне нужно создать script или сделать это вручную?
Используйте команду svn export
, чтобы экспортировать рабочую копию Subversion в новую "чистую" структуру каталогов, которая не имеет .svn
.
Сделайте командный файл 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"
Сделайте это в 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
Если вы хотите удалить все подпапки с именем .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, чтобы случайно не иметь нежелательного эффекта.
Просто введите .svn в поле поиска в Проводнике файлов, затем выберите и удалите все результаты поиска (см. комментарий JB Nizet). Разумеется, этот метод также может быть использован для быстрого удаления каталогов obj и bin, например. при организации svn-архивов.
Хотя OP запросил решение для командной строки, он также указал на использование Windows и считал удаление вручную, поэтому метод File Explorer все еще можно рассматривать, особенно потому, что он является самым быстрым методом и не полагается на "инструменты", такие как svn экспорт.
Хотя OP уже выбрал принятый ответ, этот ответ может быть полезен другим. По крайней мере, это было полезно для меня, долгое время пользователь linux/windows, который предпочитает командные строки и сначала узнал об этом окне поиска: -)
Я знаю, что слишком поздно, чтобы ответить на это, но я думаю, что есть простой способ, если у Eclipse есть и плагин svn, установленный на вашем eclipse. Щелкните правой кнопкой мыши по проекту, перейдите в Team- > disconnect. Он откроет всплывающее окно, в котором вы выбираете первый вариант: "Также удалите метаинформацию SVN из файловой системы". Это автоматически удалит все папки SVN вместе с файлами свойств svn, которые вы иногда можете забыть при удалении только папок .svn!
В качестве важного момента, если вы хотите запустить оболочку для удаления папок .svn, вам может потребоваться аргумент -depth, чтобы команда find не вводила только что удаленную директорию и отображала глупые сообщения об ошибках, такие как например,
"find: ./.svn: No such file or directory"
Чтобы избавиться от этой ошибки, вы можете использовать команду find как:
cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;