Удаление файлов .svn из всех каталогов

Возможный дубликат:
Как удалить элемент управления Subversion для папки?
Командная строка для рекурсивного удаления совпадающих файлов и каталогов

Недавно я преобразовал репозиторий cvs в svn с помощью cvs2svn, и недавно я заметил, что каждый каталог имеет скрытую папку с именем .svn. Моя текущая сборка script копирует множество каталогов из моих каталогов с версиями ресурсов и заканчивает копирование файлов .svn. В любом случае, чтобы svn не включал эти файлы при проверке или мне нужно написать script, чтобы удалить все эти .svn файлы. Есть много файлов, в которых есть эти скрытые каталоги .svn, так что это было бы болью, если бы я не мог написать рекурсивный script, но не могу, если я могу сделать это для моего установщика Windows. Есть ли простой способ остановить svn от размещения этого скрытого каталога во всем моем проекте?

Ответ 2

Я не уверен в вашем конкретном случае, что вы хотите удалить все эти .svn-каталоги. Но если вы это сделаете, вот один

find . -name .svn -print0 | xargs -0 rm -r

Ответ 3

I опубликовал это вчера здесь, но здесь снова, потому что я вроде как помещал его в неправильную нить в любом случае...


У меня есть кое-что, что должно сделать ваш день. Исходный источник здесь.

Это (совершенно безопасное) расширение оболочки, которое добавит "Удалить папки SVN" в меню правой кнопки мыши в Windows. Запустите его в любом каталоге, содержащем эти отвратительные файлы.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Чтобы сделать эту часть вашей сборки script копией этого вызова в cmd.exe и выполнить его.

Ответ 4

find . -name '.svn' -depth -exec rm -rf '{}' \; -ls

Ответ 5

в системах Win32/Win64, следующая команда должна выполнить задание:

del /q /s  .svn

Ответ 6

Эти папки необходимы для того, как работает подрывная работа с рабочей копией (т.е. где вы сделали проверку).

Один вариант - выполнить экспорт в другое место. У экспорта не было бы .svn-папок, и вы могли бы запустить ваш script. Документация: svn export, Экспорт TortoiseSVN

Другой вариант - изменить ваш script, чтобы игнорировать скрытые каталоги или создать лучший инструмент построения.

Ответ 7

И версия PowerShell

ls  -Force -Recurse -Filter  .svn  | rm -Force -Recurse

Ответ 8

svn export - это то, что вы хотите. Он предоставит вам чистую копию дерева кода без каталогов .svn (обратите внимание, что эта копия не находится под управлением версиями, а команды svn не будут работать над ней после ее экспорта).

Я использую этот метод для запуска кода на рабочих серверах. Наша сборка script берет экспорт ветвей кода, торов и gzips, загружает его на правильный сервер и распаковывает/распаковывает его.

Ответ 10

Вы можете взглянуть на SVK, который является слоем поверх Subversion. Одно из преимуществ заключается в том, что метаданные репозитория для вашей рабочей копии, которые обычно хранятся в .svn dirs, вместо этого хранятся в одном центральном месте, поэтому у вас нет уродливой скрытой проблемы с .svn. Это довольно приятно.

Ответ 11

найти "/YourFolder" -name ".svn" -exec rm -fdR {} \;

Проверьте это ссылка

Ответ 12

Я не знаю, удалю ли я их, но, возможно, изменить свою сборку script, чтобы игнорировать их копирование было бы хорошей идеей. Я использую Ant для создания компиляции и построения моей войны, и она игнорирует .svn dirs.