Можно полностью удалить файл из моего SVN-репозитория?

Я использую SVN для черепахи для проекта, который я работаю один, и я совершил (по ошибке) огромный файл в моем репозитории (база данных VС++ Intellisense). Теперь я хочу удалить этот файл из своего репозитория, чтобы облегчить его резервное копирование.

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


ИЗМЕНИТЬ

Решение @ryansstack работало отлично, вот что я сделал (я запускал команды в каталоге, где находился мой репозиторий):

Сначала я создал дамп моего репозитория, который фильтровал этот огромный файл:

svnadmin dump tcc | svndumpfilter exclude "/trunk/Image Segmentation/Image Segmentation.ncb"  > tcc.bak

Затем я создал новый репозиторий (tcc2) и выполнил следующую команду:

svnadmin load tcc2 < tcc.bak

Теперь размер дампа tcc2 равен 7 МБ против 170 МБ tcc.

Ответ 2

Насколько я знаю, как только файл зафиксирован в svn, в svn нет функции для отмены этого. Вы можете удалить файл из каталога и зафиксировать каталог, но это сделает файл не являющимся частью последней ревизии каталога; исправленный пересмотр все еще присутствует. Обычно я нахожу это хорошо, но, конечно, есть случаи (например, ваши), где это может быть менее желательным.

Ответ 3

Я посмотрел на что-то подобное, и в основном Subversion настроена так, что вы не можете просто удалить что-то подобное.

Но поскольку вы уже создаете резервную копию базы данных, вы должны проверить это. То, что я закончил, - это сброс моего репозитория, его фильтрация и загрузка его в новый репозиторий. Конечно, я уже делал цикл дамп/фильтр/загрузка по другим причинам, поэтому немного дополнительной фильтрации не добавило много работы. Если вы уже делаете резервную копию, вы можете сделать резервную копию своего текущего репо (я предполагаю, что вы делаете дамп или несколько добавочных дампов для этого), отфильтровывайте эту конкретную ревизию с помощью svndumpfilter и перезагружайте резервную копию.

EDIT: Tigris официально имеет вопрос 516. Команда "svn obliterate" запланирована, но пока не реализована.

Ответ 4

Мы столкнулись с той же проблемой. Мой администратор SVN-сервера говорит мне, что это невозможно. Единственный способ сделать это - запустить новый репозиторий и архивировать старый на диск или что-то еще.

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

Ответ 5

невозможно отменить зафиксированный файл из svn.