Вы можете удалить или лучше «сжать» историю вашего SVN-репозитория. Скажем, у вас есть 1000 ревизий, и вы хотите сжать их, чтобы иметь только ревизии от r950-r1000. Вы можете сделать следующее:
svnadmin dump /path/to/current/repo -r950:1000 > small_svn.dump
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < small_svn.dump
Однако есть два замечания:
1-е: все ваши теги и ветви будут в конечном итоге автономными копиями и, следовательно, будут занимать гораздо больше места, чем раньше (это может закончиться в еще большем хранилище, вы должны попробовать) - вы можете использовать Однако для удаления тегов и веток svndumpfilter требуется старый репозиторий для получения информации об этих тегах / ветвях.
2nd: Если ваши ветки останутся в вашем новом хранилище, все mergeinfo будут показывать неправильные ревизии, так как ваш новый репозиторий начинается с ревизии 0 снова, а также все ветки исчезли в истории версий (из-за пункта 1 )
Гораздо лучшее решение:
- Найдите ревизии, которые отвечают за рост вашего хранилища (ищите большие файлы в хранилище данных вашего хранилища, обычно расположенном в: /path/to/repo/db/revs/[0...X]) .
- Проверьте историю журналов этих ревизий и найдите ответственные файлы.
- Если вам не нужны эти файлы, удалите их с помощью svndumpfilter .
- Научите пользователя, как избегать передачи ненужных больших файлов.
В противном случае вам придется сокращать хранилище через несколько недель!