Как удалить элемент управления Subversion для папки?

У меня есть папка c:\websites\test, и она содержит папки и файлы, которые были извлечены из репозитория, который больше не существует. Как получить Subversion, чтобы остановить отслеживание этой папки и любых подпапок и файлов?

Я знаю, что могу просто удалить папку .svn, но во многих слоях есть много подпапок.

Ответ 1

Кроме того, если вы используете 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 или командной строки).

Ответ 2

В Linux это будет работать:

  find . -iname ".svn" -print0 | xargs -0 rm -r

Ответ 3

Попробуйте svn export.

Вы должны сделать что-то вроде этого:

svn export /path/to/old/working/copy /path/to/plain/code

А затем просто удалите старую рабочую копию.

TortoiseSVN также имеет функцию экспорта , которая ведет себя одинаково.

Ответ 4

Если вы используете Windows, вы можете выполнить поиск в этой папке для .svn, и они будут перечислять их все. Нажатие Ctrl + A выберет все из них, и нажатие на удаление приведет к удалению всех "суетливых" материалов Subversion.

Ответ 5

Я обнаружил, что вам даже не нужно копировать во временное место. Вы можете сделать

svn export --force .

и файлы .svn будут удалены на месте, оставив другие файлы как есть. Очень удобно и менее подвержено помехам.

Ответ 6

В Linux команда:

svn delete --keep-local file_name

Ответ 7

Без подсетей в 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".

Ответ 8

Это сработало для меня:

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf

Ответ 9

Ни один из этих ответов не был удовлетворительным для моей ситуации. Я на 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, как показано на этом снимке экрана

enter image description here

Ответ 10

Используйте команду svn export:

cd c:\websites\test
svn export c:\websites\test_copy

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

Ответ 11

Просто удалите папку .svn внутри необходимой папки, затем элемент управления будет автоматически удален.

Ответ 12

В Windows вы можете добавить ссылку быстрого доступа для этого в контекстное меню вашего проводника. Просто запустите этот реестр script:

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/

Ответ 13

Вы можете использовать "svn export" для создания копии этой папки без svn-данных или вы можете добавить эту папку для игнорирования списка

Ответ 14

Для тех, кто использует NetBeans с SVN, есть опция "Subversion > Export".

Ответ 15

Там также есть небольшой инструмент с открытым исходным кодом SVN Cleaner, который добавляет три параметра в контекстное меню проводника Windows:

  • Удалить все .svn
  • Удалить все, кроме Root.svn
  • Удалить локальные файлы репо

Ответ 16

В Windows 7 можно просто открыть папку проекта и выполнить поиск ".svn", если скрытые файлы включены и удалить все найденные папки .svn.

Ответ 17

ЛУЧШИЙ И ЛУЧШИЙ ПУТЬ

Если вы думаете, что можете выиграть с помощью простой магической команды, вам не удастся! SVN действительно сложна и всегда возвращается как-то с новым сообщением об ошибке в Xcode. Рано или поздно обещайте... так что вам нужно сделать это умным!

Как вы знаете, обычная и лучшая практика в Xcode - удаление файла на панели проекта слева. Если вы пропустили его и как-то удалили в Finder, у вас проблемы. Большая проблема! Но вы можете решить это и получить свободное время, если вы сделаете это хорошо.

Во-первых, вам нужно удалить ссылку SVN в файл или папку, прежде чем удалять ее на самом деле

  • Если вы можете просто вернуть файл/папку из корзины или отменить последний шаг при ее удалении, тогда...

  • Перейдите в Терминал - да, старый добрый терминал - и перейдите в это место. Лучший способ просто набрать cd, затем вытащить папку/файл в терминал. Вы получите что-то подобное

cd/Users/UserName/Documents/Apps_Developing/...

Вы можете проверить, где вы находитесь с помощью

Ls

в которой перечислены ваши файлы.

  1. Затем вам нужно удалить ссылку svn с помощью команды SVN:

    svn delete --keep-local fileName_toDelete

Это приведет к удалению файла из репозитория SVN, но вы должны удалить его вручную в Finder.

Ответ 19

Другое (более простое) решение для Linux:

rm -r `find /path/to/foo -name .svn`

Ответ 20

Ответ на удивление прост - экспортировать папку себе! TortoiseSVN обнаруживает этот специальный случай и спрашивает, хотите ли вы сделать рабочую копию неверсированной. Если вы ответите "да", управляющие каталоги будут удалены, и у вас будет простое, неверсированное дерево каталогов.

Ответ 21

svn export отлично работает, но я думаю, что это:

svn rm --keep-local <folder/file>

Он удаляет его из локального репозитория.

Ответ 22

Эта команда работает для меня:

найти. -iname ".svn" -print0 | xargs -0 rm -r

Ответ 23

Пользователи IDE NetBeans могут сделать это, как показано ниже:

  • Откройте проект SVN в своей среде IDE
  • Выберите проект

    щелкните правой кнопкой мыши диверсия Экспорт

  • В диалоговом окне

    экспорт в папку /Var/TMP/ имя_проект печать прессы Подождите покажет полный спросит, хотите ли вы открыть его, открывать на лету

  • Теперь вы можете перейти на Git:)

Ответ 24

Моя идея - удалить папку .svn, а затем переместить все остальные файлы в новую папку. Это так просто.

Ответ 25

Я использую rsync:

# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped

Ответ 26

Когда вы используете ОС Windows, перейдите в папку и убедитесь, что скрытые файлы открыты, а затем вы можете увидеть папку SVN. Просто удалите эту папку.

Ответ 27

В качестве важного момента, когда вы используете оболочку для удаления папок .svn, вам нужен аргумент -depth, чтобы команда find не входила в только что удаленную директорию и отображала сообщения об ошибках, например,

"find:./.svn: нет такого файла или каталога"

В результате вы можете использовать команду find, как показано ниже:

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;

Ответ 28

В Windows 10 нам нужно перейти на Windows Explorer, а затем перейти к View и установить флажок View hidden files.

Затем перейдите к папке с SVN-соединением в проводнике Windows и удалите папку/файл .svn.