Как удалить Subversion control для папки?



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



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

697   28  
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 или командной строки).

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

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

попробовать экспорт svn.

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

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

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

TortoiseSVN также имеет экспорт, который ведет себя точно так же.

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

в Linux команда:

svn delete --keep-local file_name

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

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, как видно на этом скриншоте:

enter image description here

Он хорошо работал для меня:

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

использовать :

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

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

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

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

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 export" для создания копии этой папки без данных svn, или вы можете добавить эту папку в список игнорирования

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

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

  • Удалить Все .svn
  • Удалить Все, Кроме Корня .svn
  • Удалить Локальные Файлы РЕПО

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

САМЫЙ ЛУЧШИЙ И ПРОСТОЙ СПОСОБ

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

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

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

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

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

компакт-диск /Пользователи/Имя пользователя/документы/Apps_Developing/...

вы можете проверить, где вы с

ls

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

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

    svn delete --keep-local fileName_toDelete

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

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

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

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

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

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

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

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

найти . -имя_экземпляра ".svn " - print0 / xargs -0 rm-r

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

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

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

  1. откройте проект SVN в IDE
  2. выберите проект

    Правой Кнопкой Мыши Подрывная деятельность Экспорт

  3. в диалоговом окне

    экспорт в папку /var/tmp / имяпроекта пресс экспорт ждать покажет полное спросит, хотите ли вы, чтобы открыть его сделать открытым на лету

  4. теперь вы можете переключиться на Git :)

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

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

как жизненно важный момент, когда вы используете shell удалить .svn папки, вам нужно глубокий

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

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

Comments

    Ничего не найдено.