2009-08-19 3 views
32

Можно создать дубликат:
How do you remove Subversion control for a folder?
Command line to delete matching files and directories recursivelyУдаление .svn файлы из всех каталогов

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

+0

Упс, выбрал неправильный один: http://stackoverflow.com/questions/154853/how-do-you-remove-subversion-control-for-a-folder – zzzzBov

ответ

28

Вы можете сделать вещь, называемую SVN Export, чтобы получить файлы без папок .svn

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html

+0

Yep, SVN Export удалит файлы .svn. Вы можете сделать командный файл для запуска команды экспорта из командной строки и включить ее в свой процесс сборки. –

+0

проверить эту ссылку, это помогло мне .... http://cocoabugs.blogspot.com/2010/09/script-to-remove-hidden-svn-folder.html – 2010-09-20 10:16:24

+2

это замечательно, но, к сожалению, иногда кто-то посылает вам tarball полный из них :( – Eva

4

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

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

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

-1

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

+0

Удаление их - не очень хорошая идея, если вы не хотите, чтобы эта папка НЕ ​​была рабочая копия больше. – crashmstr

5

Я posted this yesterday over here, но здесь снова, потому что я вроде положить его в ту нить так или иначе ...


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

Это (совершенно безопасное) расширение оболочки, которое добавит «Удалить папки 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\" \"" 

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

1

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

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

68

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

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

перед запуском команды обязательно введите соответствующий каталог, например: cd mySVNdirectoryWhereToRemoveTheSubfolders – Camaleo

0

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

3

А версия PowerShell

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

Иногда один наследует код, где это более полезно. Благодаря! – jray

5

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

+0

upvote для пользователей Windows, у которых установлен cygwin. Тем не менее я нахожу использование окна поиска File Explorer намного проще. – Roland

0

находка "/ YourFolder" -name ".svn" -exec rm -fdR {} \;

Проверить это link

5

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

del /q /s .svn 
Смежные вопросы