Как удалить папку из системы контроля версий с помощью 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каталоги за вас (если вы делаете это для всего дерева каталогов, а не для одного каталога, это намного удобнее, чем чистка папок вручную) ,


1
Для (1) вы можете экспортировать, чтобы избавиться от данных SVN копии.
— dahlbyk 02

Правильно - вы должны удалить его через TortoiseSVN, восстановить, а затем удалить все папки svn в нем (а также файл .version).
— Chance

* а затем проигнорируйте это - хотя это сработало как шарм (спасибо)
— Chance

Для меня простой экспорт избавился от репозитория SVN и зеленых галочек на папке, которые я хотел.
— Хаммад Хан

7

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

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


6

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


2
Это также удалит папку.
— tunnuz 02

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

2

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


2

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


2

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

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

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


2

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


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 этой рабочей копии. Просто говорит да!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.