Ответ 1
Вы можете сделать вещь, называемую SVN Export, чтобы получить файлы без каталогов .svn
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html
Возможный дубликат:
Как удалить элемент управления Subversion для папки?
Командная строка для рекурсивного удаления совпадающих файлов и каталогов
Недавно я преобразовал репозиторий cvs в svn с помощью cvs2svn, и недавно я заметил, что каждый каталог имеет скрытую папку с именем .svn. Моя текущая сборка script копирует множество каталогов из моих каталогов с версиями ресурсов и заканчивает копирование файлов .svn. В любом случае, чтобы svn не включал эти файлы при проверке или мне нужно написать script, чтобы удалить все эти .svn файлы. Есть много файлов, в которых есть эти скрытые каталоги .svn, так что это было бы болью, если бы я не мог написать рекурсивный script, но не могу, если я могу сделать это для моего установщика Windows. Есть ли простой способ остановить svn от размещения этого скрытого каталога во всем моем проекте?
Вы можете сделать вещь, называемую SVN Export, чтобы получить файлы без каталогов .svn
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html
Я не уверен в вашем конкретном случае, что вы хотите удалить все эти .svn-каталоги. Но если вы это сделаете, вот один
find . -name .svn -print0 | xargs -0 rm -r
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 и выполнить его.
find . -name '.svn' -depth -exec rm -rf '{}' \; -ls
в системах Win32/Win64, следующая команда должна выполнить задание:
del /q /s .svn
Эти папки необходимы для того, как работает подрывная работа с рабочей копией (т.е. где вы сделали проверку).
Один вариант - выполнить экспорт в другое место. У экспорта не было бы .svn-папок, и вы могли бы запустить ваш script. Документация: svn export, Экспорт TortoiseSVN
Другой вариант - изменить ваш script, чтобы игнорировать скрытые каталоги или создать лучший инструмент построения.
И версия PowerShell
ls -Force -Recurse -Filter .svn | rm -Force -Recurse
svn export - это то, что вы хотите. Он предоставит вам чистую копию дерева кода без каталогов .svn
(обратите внимание, что эта копия не находится под управлением версиями, а команды svn не будут работать над ней после ее экспорта).
Я использую этот метод для запуска кода на рабочих серверах. Наша сборка script берет экспорт ветвей кода, торов и gzips, загружает его на правильный сервер и распаковывает/распаковывает его.
Если вы хотите сделать это с помощью ruby, просто вставьте мой script в корневую папку, которую вы хотите удалить рекурсивно: http://fabianosoriani.wordpress.com/2009/03/19/ruby-script-to-remove-svn-folders/ p >
Вы можете взглянуть на SVK
, который является слоем поверх Subversion. Одно из преимуществ заключается в том, что метаданные репозитория для вашей рабочей копии, которые обычно хранятся в .svn
dirs, вместо этого хранятся в одном центральном месте, поэтому у вас нет уродливой скрытой проблемы с .svn
. Это довольно приятно.
найти "/YourFolder" -name ".svn" -exec rm -fdR {} \;
Проверьте это ссылка
Я не знаю, удалю ли я их, но, возможно, изменить свою сборку script, чтобы игнорировать их копирование было бы хорошей идеей. Я использую Ant для создания компиляции и построения моей войны, и она игнорирует .svn dirs.