Как удалить папку из системы контроля версий с помощью TortoiseSVN?

129

Как мне удалить папку из источника, контролируемого с помощью TortoiseSVN ?

шанс
источник
10
Хороший вопрос. Это до смешного сложно для того, что должно быть простой задачей.
Пол Суарт,
Примечание для всех, кто использовал «SVN Update to revision» (а не svn checkout): попробуйте снова использовать SVN Update to revision, но на этот раз с глубиной обновления, установленной на Exclude.
Уоллес Браун
Вы можете удалить .svnсвязанную папку
ahmednabil88
Мне всегда было интересно, можно ли в Windows / Tortoise очень просто УДАЛИТЬ локальную папку на ПК. Итак, на вашем сервере репо REPO. И у вас есть его версия на вашем ПК, LOCALFOLDER. Вам просто больше не нужна эта локальная версия на этом ПК. В этом случае я просто удаляю папку LOCALFOLDER на ПК. (Я вообще ничего не делаю из меню Tortoise, прежде чем выбросить LOCALFOLDER в корзину.) Чтобы было ясно, я не хочу никоим образом влиять на REPO - мне просто больше не нужна / мне больше не нужна версия LOCALFOLDER. Я всегда задавался вопросом, нормально ли это делать?
Fattie
Или Tortoise хранит "что-то еще" где-то на ПК, чтобы с этого момента Tortoise чувствовала, что LOCALFOLDER отсутствует?
Fattie

Ответы:

56

В расширенном контекстном меню есть специальный пункт:

  • Удерживая Shiftнажатой клавишу, щелкните папку правой кнопкой мыши.
  • В меню TortoiseSVN нажмите «Удалить (сохранить локально)»

введите описание изображения здесь

Изображение вырезано из страницы расширенного контекстного меню TortoiseSVN .
Удалите (оставьте на месте) рекламное объявление о документации

Боб Эспонья
источник
4
На самом деле это CTRL + SHIFT при щелчке правой кнопкой мыши по папке. Давай, Stackoverflow, почему я нашел этот ответ внизу?
hollystyles
4
Какую версию вы используете? Версия 1.6.12 не имеет опции Удалить (сохранить локально). Ни Shift, ни CTRL + Shift не помогает.
thehhv 05
1
Я только что проверил еще раз, и у меня работает Shift + правый щелчок. @thehhv версии 1.6.10 по-прежнему имеет такую ​​возможность.
Боб Эспонья
1
Отличный ответ. Shift + щелчок действительно работает с 1.6.10. После этого вам все равно придется зафиксировать файл, чтобы он исчез из удаленного репо.
hotshot309 03
2
Это следует пометить как ответ, поскольку это самый простой способ использования TortoiseSVN
alejosoft
176

Самый простой способ описан здесь: http://tortoisesvn.net/unversion.html

Эта статья немного многословна, и некоторые методы у меня не работали (например, перетаскивание папки на себя - Windows 7 этого не допускала)).

Вот что из статьи сработало для меня:

Просто: когда вы щелкаете правой кнопкой мыши по рабочей копии и выбираете « Экспорт ...» из контекстного меню, открывается диалоговое окно просмотра папки, в котором вы можете выбрать папку, в которую вы хотите экспортировать рабочую копию. Если вы теперь выберете тот же путь, что и ваша рабочая копия, в качестве целевого объекта (т. Е. Вы экспортируете рабочую копию в себя), TortoiseSVN удалит все папки .svn этой рабочей копии.

Стефан
источник
3
Стефан, я попробовал описанную вами процедуру, и TSVN показывает мне диалоговое окно «Unversion» (с индикатором выполнения, показывающим прогресс), но после завершения процесса папка остается такой же, как и раньше. У меня Win7, и папка находится в общем сетевом ресурсе - могло ли это иметь какое-то отношение к сбою процедуры (тихо)? (+1 в любом случае, потому что эта процедура - именно то, что мне нужно)
Генрих Ульбрихт
Он не должен молча терпеть неудачу. Вы уверены, что скрытые папки .svn все еще там?
Стефан
Ага, я их вижу. Моя первоначальная проблема заключается в том, что я хочу избавиться от всего извлеченного каталога (включая подкаталоги) в общей сетевой папке. Это не удалось, потому что Windows сообщает, что кто-то использует файлы. Поэтому я подумал, что это может быть кеш svn и что, используя метод из TSVN-мира, я смогу решить эту проблему доступа. Но не повезло :(
Генрих Ульбрихт
1
Чтобы избежать необходимости переходить по ссылке, процедура повторяется здесь: Простой: когда вы щелкаете правой кнопкой мыши по рабочей копии и выбираете «Экспорт ...» из контекстного меню, открывается диалоговое окно просмотра папки, в котором вы можете выбрать папка, в которую вы хотите экспортировать рабочую копию. Если вы теперь выберете тот же путь, что и ваша рабочая копия, в качестве целевого объекта (т. Е. Вы экспортируете рабочую копию в себя), TortoiseSVN удалит все папки .svn этой рабочей копии.
Чарли Раткопф, 03
Когда я попробовал это, я начал получать ошибки, что каталог, который я экспортировал в себя, теперь «не рабочий каталог», и он был «заблокирован», и я должен очистить, но когда я попробовал это (IIRC), я получил ошибку, что корневой каталог был заблокирован. Наконец, я просто сделал ПЕРЕМЕЩЕНИЕ (перетащите папку в папку, отличную от SVN, и в раскрывающемся меню выберите «Экспорт ...»), а затем удалите (оба с помощью Tortoise).
Клэй Николс
12

Если вы хотите удалить папку из системы управления версиями, но сохранить ее локально, самым простым способом было бы

  1. создать резервную копию папки (просто скопируйте ее в другое место)
  2. следуйте инструкциям по удалению
  3. восстановить папку
  4. скажите Subversion "Игнорировать" папку

Вы также должны удалить .svnкаталог, который крутится в папке, которую вы удаляете, иначе вы запутаете svn / tortoise. Вы также можете выполнить «Экспорт» для шага 1, который удалит все .svnкаталоги за вас (если вы делаете это для всего дерева каталогов, а не для одного каталога, это намного удобнее, чем чистка папок вручную) ,

AwesomeTown
источник
1
Для (1) вы можете экспортировать, чтобы избавиться от данных SVN копии.
dahlbyk 02
Правильно - вы должны удалить его через TortoiseSVN, восстановить, а затем удалить все папки svn в нем (а также файл .version).
Chance
* а затем проигнорируйте это - хотя это сработало как шарм (спасибо)
Chance
Для меня простой экспорт избавился от репозитория SVN и зеленых галочек на папке, которые я хотел.
Хаммад Хан
7

В меню TortoiseSVN есть опция Экспорт, которая дает вам копию папки, отсоединенной от репозитория. Кроме того, вы можете щелкнуть правой кнопкой мыши + перетащить папку и выбрать либо «SVN Export to here», либо «SVN Export all to here».

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

dahlbyk
источник
6

Щелкните каталог правой кнопкой мыши и выберите TortoiseSVN -> Удалить . Затем вы щелкните правой кнопкой мыши родительский каталог и SVN Commit ... и это удалит папку.

Шон Брайт
источник
2
Это также удалит папку.
tunnuz 02
Это был ответ, который я искал ... Я также нашел его здесь: tortoisesvn.net/docs/release/TortoiseSVN_en/…
Очень Нерегулярный
2

Windows Search, установите флаг системы и скрытых файлов ... имя файла ".svn" ... после поиска - отсортируйте, чтобы все каталоги .svn были сгруппированы вместе ... выделите - нажмите удалить :)

Джейсон П. Сейдж
источник
2

Я выполнил команду черепахи «Обновить до SVN 1.7», которая взяла все папки .svn и объединила их в одну папку. Затем я смог удалить только одну папку .svn, и все было хорошо!

jhilden
источник
2

Я вижу, что есть три простых метода для отмены проверки и сохранения локальной версии файла (или каталога) с помощью TortoiseSVN:

  1. Экспорт по тому же пути, который написал Стефан ;
  2. функция «удалить (сохранить локально)», доступ к которой осуществляется с помощью клавиши Shift в качестве ответа Боба Эспонжи ;
  3. Отменить версию и добавить в список игнорирования, о которой я сообщаю в этом ответе

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

Zac
источник
2

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

akerra
источник
1

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

  1. Щелкните правой кнопкой мыши папку / ветку, которую вы хотите удалить, и используйте TortoiseSNV-> Удалить
  2. Выполните очистку. Я сделал это из командной строки svn cleanup <path to the folder to delete including folder name>; в противном случае вы можете сделать то же самое правой кнопкой мыши по папке и выполнить очистку.
  3. Перейдите в родительский каталог папки, которую вы хотите удалить, и зафиксируйте изменения.

Это должно удалить папку из вашего рабочего каталога и из Subversion.

Дзэн
источник
1

Для меня отлично сработал экспорт папки в новое место при выбранной опции «Экспортировать неверсированные файлы в». TortoiseSVN удаляет все специфические настройки Subversion, и вы получаете чистую папку. Теперь вы можете удалить исходную и переместить туда новую экспортированную папку.

Рехан Фарук
источник
0

Время от времени я сталкиваюсь с папками рабочих копий из Subversion, которые, как я знаю, больше не нужны для управления версиями. Я хочу их «деверсировать». Обычно я выполняю поиск и удаление всех папок, связанных с .svn, но есть более простой способ, если у вас установлен TortoiseSVN.

Вы должны быть знакомы с командой «Экспорт». Это сделает копию файлов в новом месте без всех этих надоедливых папок .svn. Если вы хотите что-то «деверсировать», но не хотите копировать - просто выполните «экспорт», и когда черепаха спросит «папку для экспорта», просто выберите ту же папку, в которой находится ваша рабочая копия! Tortoise продолжит удаление всех папок .svn.

Цитата: http://thecrumb.com/2008/09/25/removing-svn-files-with-tortoisesvn/

выиграть
источник
-1

Щелкните правой кнопкой мыши рабочую копию и выберите «Экспорт ...» в контекстном меню. Отображается диалоговое окно просмотра папки.

Вы должны выбрать тот же путь, что и ваша рабочая копия, в качестве цели. TortoiseSVN спросит вас, хотите ли вы удалить все папки .svn этой рабочей копии. Просто говорит да!

Heyjee
источник