Как удалить элемент управления Subversion для папки?
у меня есть папка, c:websitestest
, и содержит папки и файлы, которые были извлечены из хранилища, который больше не существует. Как заставить Subversion прекратить отслеживать эту папку и любые подпапки и файлы?
Я знаю, что могу просто удалить .svn
папка, но есть много подпапок во многих слоях.
28 ответов
кроме того, если вы используете TortoiseSVN, просто экспортируйте в текущее местоположение рабочей копии, и он удалит .svn папки и файлы.
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion
обновленный ответ для Subversion 1.7:
В Subversion 1.7 рабочая копия была тщательно пересмотрена. Есть только один .папка svn, расположенная в основании рабочей копировать. Если вы используете 1.7, то просто удалите .папка svn и ее содержимое-простое решение (независимо от использования TortoiseSVN или инструментов командной строки).
попробовать экспорт svn.
вы должны быть в состоянии сделать что-то вроде этого:
svn export /path/to/old/working/copy /path/to/plain/code
а затем просто удалите старую рабочую копию.
TortoiseSVN также имеет экспорт, который ведет себя точно так же.
Если вы используете Windows, то вы можете выполнить поиск в этой папке для .svn
и это будет список их всех. Нажатие Ctrl + A выберет все из них, и нажатие delete удалит все "надоедливые" подрывные материалы.
Я нашел, что вам даже не нужно копировать во временную папку. Вы можете сделать
svn export --force .
а .svn файлы будут удалены in situ, оставив остальные файлы как есть. Очень удобно и менее склонно к беспорядку.
без подрешеток в Linux для удаления .svn
папки:
find . -name .svn -exec rm -r -f {} +
rm = remove
-r = recursive (folders)
-f = force, avoids a lot of "a your sure you want to delete file XY".
ни один из этих ответов не является удовлетворительным для моей ситуации. Я на subversion 1.8, и у меня была рабочая копия, у которой был только один .svn
папка в самой первой папке root. Тем не менее, я хотел удалить некоторые ветви из рабочей копии.
независимо от того, что я сделал, всякий раз, когда я запускал "обновление", он восстанавливал эти файлы и возвращал их все. Я не хотел удалять их из хранилища, только с моего компьютера , но мне нужно было сохранить остальную рабочую копию в такте (таким образом, не мог просто снять .папки в SVN).
решение? svn update --set-depth exclude <dir>
это клиентское "обновление", которое исключает определенный каталог. Его можно найти в руководствах по адресуsvnbook.com. Короче говоря, он описывает это как:
начиная с Subversion 1.6, вы можете использовать другой подход. Во-первых, проверьте каталог полностью. Затем запустите svn update --set-depth exclude в одном подкаталоге, который вам все равно о.
для TortoiseSVN вы также можете сделать то же самое, щелкнув правой кнопкой мыши папку, которую вы не хотите, нажмите Update to revision...
, а затем установите глубину на Exclude
, как видно на этом скриншоте:
использовать :
cd c:\websites\test
svn export c:\websites\test_copy
все файлы под контролем версий будут экспортированы. Дважды проверьте, не пропустили ли вы что-нибудь.
в Windows вы можете добавить quicklink для этого в меню правой кнопки мыши проводника. Просто запустите этот скрипт реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_CLASSES_ROOT\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\" \""
Это добавит элемент под названием "удалить папки SVN" в меню правой кнопки мыши. Это удалит все .SVN папки в этой папке и все вложенные папки.
Источник (Немецкий):http://www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/
вы можете использовать "SVN экспорт" для создания копии этой папки без данных svn, или вы можете добавить эту папку, чтобы игнорировать список
есть также небольшой инструмент с открытым исходным кодом под названием SVN Cleaner, который добавляет три опции в контекстное меню Проводника Windows:
- Удалить Все .svn
- Удалить Все, Кроме Root .svn
- Удалить Локальные Файлы РЕПО
в Windows 7 можно просто открыть папку проекта и выполните поиск ".СВН", если скрытые файлы включены и удалить все найденные .папки svn.
ЛУЧШИЙ И САМЫЙ ПРОСТОЙ СПОСОБ
Если вы думаете, что вы могли бы выиграть с помощью простой волшебной команды вы потерпели неудачу! SVN действительно сложно и всегда возвращается как-то с новым сообщением об ошибке в Xcode. Рано или поздно, обещаю... так что вы должны сделать это умно!
Как вы знаете, обычная и лучшая практика в Xcode-удаление файла на панели проекта слева. Если вы пропустили его и каким-то образом удалили его в Finder, у вас проблемы. Большие неприятности! Но вы могли бы решить и свободное время, если вы делаете это хорошо.
во-первых, вам нужно удалить ссылку SVN на файл или папку, прежде чем вы сможете удалить ее на самом деле
Если вы можете просто вернуть файл / папку из корзины или отменить последний шаг при ее удалении, то...
перейдите в терминал-да, старый добрый терминал - и перейдите в это место. Лучший способ просто введите компакт-диск затем потяните папка / файл к терминалу. Вы получите что-то подобное
cd / Пользователи / Имя пользователя / документы / Apps_Developing/...
вы можете проверить, где вы с
ls
команда, которая перечисляет ваши файлы.
-
затем вам нужно удалить ссылку svn с помощью команды SVN:
svn delete --keep-local fileName_toDelete
это удалит файл из репозитория SVN, но вы должны удалить его вручную в Finder.
ответ на удивление прост - экспортировать папку в себя! TortoiseSVN обнаруживает этот особый случай и спрашивает, Хотите ли вы сделать рабочую копию неверсионной. Если вы ответите "да", управляющие каталоги будут удалены, и у вас будет простое неверсированное дерево каталогов.
svn export
работает нормально, но я думаю, что это:
svn rm --keep-local <folder/file>
Он удаляет его из локального репозитория.
Я использую rsync:
# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped
пользователи IDE NetBeans могут сделать это, как показано ниже:
- откройте проект SVN в IDE
-
выберите проект
Правой Кнопкой Мыши Подрывная деятельность Экспорт
-
в диалоговом окне
экспорт в папку /var/tmp / имя проекта пресс-экспорт ждать покажет полную спросите, хотите ли вы открыть его, откройте на лету
теперь вы можете переключиться на Git :)
моя идея состоит в том, чтобы удалить .папка svn, а затем переместите все остальные файлы в новую папку. Все очень просто.
когда вы используете ОС Windows, перейдите в папку и проверьте скрытых файлов, а затем вы можете увидеть SVN папка в там. Просто удалите эту папку.
В Windows 10 нам нужно перейти к Windows Explorer
, а затем перейдите к View
и установите флажок View hidden files
.
затем перейдите в папку, в которой SVN связан с проводником Windows, и удалите .svn
папку/файл.