Как удалить старые версии SVN - PullRequest
4 голосов
/ 04 декабря 2010

Наш репозиторий SVN приближается к 0,5 ГБ.У нас нет такого количества кода в нашей производственной системе.

Возможно ли удалить старые версии.Я пробовал svn dump с начальным номером ревизии, но безрезультатно.Я не могу импортировать это в чистый SVN-репозиторий.

Нам не нужна история более года назад.

Есть идеи?

Ответы [ 2 ]

13 голосов
/ 05 декабря 2010

Вы можете удалить или лучше «сжать» историю вашего 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 .
  • Научите пользователя, как избегать передачи ненужных больших файлов.

В противном случае вам придется сокращать хранилище через несколько недель!

0 голосов
/ 04 декабря 2010

Как ваш бизнес может позволить себе тратить время на это вместо того, чтобы просто купить больший диск, переместить материал и продолжить? 1 ТБ стоит эквивалент 1-2 человеко-часов плюс время, необходимое для перемещения данных и замены дисков.

...