Ответ 1
Просто удалите все папки ".svn". Что это.
У меня есть папка, которая является моей рабочей копией. Как удалить все функции SVN из этой папки? Есть причина, по которой я это делаю, как-то моя главная папка, содержащая все мои рабочие копии сайтов, каким-то образом превратилась в рабочую копию, поэтому у меня есть рабочая копия как таковая.
Итак, есть ли простой способ удаления контроля версий из папки?
Просто удалите все папки ".svn". Что это.
svn export - это команда, которую вы ищете. Вы можете экспортировать управляемый набор файлов в неконтролируемое местоположение и использовать его.
Если вы использовали * nix-подобные инструменты:
find . -type d -name .svn -print0 | xargs -0 rm -fr
Если вы используете TortoiseSVN, вы можете просто щелкнуть правой кнопкой мыши в корневой папке вашей рабочей копии и нажать "Экспорт"... Это будет работать, даже если у вас есть неустановленные изменения.
Аналогично, вы можете просто экспортировать из своего репозитория, и он не будет создавать ни одну из папок .svn.
Еще один простой подход - просто удалить все папки .svn, как уже упоминалось ранее.
Вы можете вручную удалить все папки .svn(обязательно сделайте это для каждой вложенной папки) или используйте простую утилиту, например Jon Gallaway команда оболочки.
Клиент Windows "TortoiseSVN" имеет функцию "Экспорт". Экспорт создает копию в другом месте в другой папке без всех этих ".svn" папок в них. Вы можете экспортировать либо из репозитория, либо из локальной копии с опцией, чтобы включить непереведенные файлы.
как насчет этого:
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d ".svn"') do rd /s /q "%%i"
чтобы рекурсивно удалить все папки .svn -
(если функция экспорта не является для вас вариантом, недоступна в репозитории и т.д.)
TortoiseSVN имеет возможность экспортировать файлы без привязок к субверсиям - щелкните правой кнопкой мыши на репозитории (или в каталоге в репозитории), затем в TortoiseSVN, затем в Export. Другой способ сделать это - удалить все каталоги .svn во всех папках.
Вот пакет Windows script, который удалит все папки .svn из каталога рабочей копии Subversion:
@echo off
rem cleanup .svn subdirs
setlocal enabledelayedexpansion
rem change to directory that this batch script resides in
if "%~1"=="" (
echo Usage: svncleanup svn_working_copy_dir
exit /b 1
)
echo cleaning up .svn subdirs in "%~1" ...
for /R "%~1" %%I in (.svn) do rmdir /Q /S "%%I" > NUL 2>&1
С помощью TortoiseSVN вы можете выполнить правое перетаскивание папки и затем выбрать команду "SVN Export All to here".
Я просто использую проводник Windows для поиска ".svn" (начиная с верхней части моей рабочей копии), а затем я выбираю все найденные папки и удаляю их.
Экспорт на место с черепахой
Когда я прочитал все вышеперечисленные предложения, я съежился, потому что мои исходные файлы - 3 ГБ, с папками many.svn.
Выберите "Экспорт" из контекстного меню "R-click", и когда появится диалоговое окно "Где поставить копию", выберите ту же самую папку. ОК. Виола, весь контрольный крутитель источника (рекурсивно) ушел, мгновенно.
Вы не можете просто удалить подпапку .svn?
Насколько я знаю, SVN хранит все о своем подключении к репозиторию в этой подпапке (по крайней мере, в окнах)
Как говорили другие, удаление папки .svn приведет к удалению из этой папки функций SVN. Если вы сделаете это рекурсивно, вы будете "un-SVN" весь ваш WC, что по сути является командой экспорта. Я не уверен, что это особенность Tortoise, двоичного файла CLI SVN или того и другого, но я помню, что один из них позволяет вам делать экспорт на месте, который буквально удаляет папки .svn из WC. Обычный экспорт создает копию вашего туалета в новом месте, которое не было преобразовано.