Освобождаю место в моем хранилище SVN
У меня есть SVN-репозиторий, размещенный на сайте freemium с максимальным размером репозитория. По мере приближения к этой емкости я узнаю о файлах, которые я зарегистрировал, и которые я могу удалить навсегда, чтобы освободить дисковое пространство. Как мне сообщить SVN, что файл можно не только удалить, но и историю?
4 ответа
Я не думаю, что в subversion есть способ не указывать версию определенного файла или, по крайней мере, забыть о файле при удалении. Как это противоречит цели системы контроля версий. Вы сможете достичь этого с помощью некоторых настроек, если у вас есть локальный репозиторий. Однако без какого-либо административного доступа к хранилищу это будет невозможно сделать.
Если это помогает, rsvndump - это инструмент для создания дампа удаленного репозитория. Благодаря этому вы сможете получить дамп хранилища в вашей локальной системе. Чтобы удалить ненужные файлы, вы можете использовать эту команду "cat xxx-svn-dump | svndumpfilter exclude $file > new-svn-dump". Хотя с помощью этого вы можете уменьшить размер хранилища, вы не сможете обновить исходное хранилище этим содержимым.
Посмотри на это:
http://subversion.apache.org/faq.html говорит:
Существуют особые случаи, когда вы можете уничтожить все доказательства файла или коммита. (Возможно, кто-то случайно передал конфиденциальный документ.) Это не так просто, потому что Subversion специально разработана, чтобы никогда не потерять информацию. Редакции - это неизменные деревья, которые строятся друг на друге. Удаление ревизии из истории вызовет эффект домино, создав хаос во всех последующих ревизиях и, возможно, сделает недействительными все рабочие копии.
Возможное решение в этом SO ответе:
Также вы можете сократить свою историю. Скажем, у вас есть 100 ревизий, вы можете сохранить новейшую историю, скажем, 50 ревизий. Это также может уменьшить размер вашего хранилища Subversion.
svnadmin dump /path/to/current/repo -r50:100 > newsvn.dump
# you can delete the old repo and then
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < newsvn.dump
Если вы можете жить без своей истории коммитов, вы можете извлечь код, удалить текущий репозиторий, создать новые репозитории, а затем зафиксировать код в новом репозитории.