Ответ 1
Удаление файла из svn, не удаляет его историю изменений.
Очевидно, что удаление истории возможно [SO]: удалить файл со всеми история из репозитория svn.
Чтобы упростить ситуацию, рассмотрим следующую аналогию.
Из svn PoV, как:
- a (источник) файл состоит из:
- последовательность элементов: строки (кода)
То же самое:
- a папка состоит из:
- последовательность элементов: ее дети:
- (суб) папки
- файлы
- последовательность элементов: ее дети:
Скажем, что у нас есть файл svn:
- В редакции M строка кода (пусть она станет последней, чтобы лучше проиллюстрировать пример) в этом файле была изменена
- В версии N ( > M) эта строка была удалена
Ситуация такова:
- Для изменений файлов, больших N, строка не будет присутствовать
- Для изменений файлов между M и N строка будет иметь свой последний контент
- Для версий файлов, меньших, чем M, строка будет иметь старое содержимое
- ....
То же самое произошло бы при удалении файла (из перспективы его родительской папки).
Теперь вернемся к вашему вопросу: на моем TortoiseSVN (v1.9.5):
- У меня есть опция удаления
- У меня нет опции Unversion, но
- У меня есть опция Delete (keep local) - которая является (лучше назвать, возможно, для) Unversion. В терминах командной строки это эквивалентно
svn delete --keep-local
После выполнения одного из действий над файлом этот файл больше не будет отслеживаться с помощью svn, но в отличие от Delete (где файл также удаляется из рабочей копии/диска), Unversion оставит его на диске точно так же, как пользователь вручную скопировал его там (последующий svn st
будет "видеть" файл как не находящийся под контролем версии: первый столбец будет вопросительным знаком (?), как описано в разделе [SVNBook]: svn status
).
[TortoiseSVN]: удаление, перемещение и переименование содержит очень мало официальной информации.
Лично я не вижу использования локального файла, кроме случаев, когда исправляется ошибка, например. удаление ранее зафиксированных элементов, которые не принадлежат репозиторию (зависит от пользователя), например:
- Eclipse:.classpath,.project
- PyCharm:.idea
- VStudio:.vcxproj.user
Цитата из [SVNBook]: svn delete
:
Используйте параметр -keep-local, чтобы переопределить поведение по умолчанию svn delete, также удалив целевой файл, который был запланирован для удаления версии. Это полезно, когда вы осознаете, что случайно сделали добавление файла, который вам нужно сохранить в своей рабочей копии, но который не должен был быть добавлен в управление версиями.