Раньше мы делали резервную копию нашего полного дампа SVN каждую ночь, но теперь репозиторий стал слишком большим.
Если бы я был готов отрезать историю ревизий, скажем, за 2 недели, как бы я сделал пакетный скрипт для выполнения этого дампа?
я понимаю svnadmin dump
может принимать диапазон ревизий, но я не уверен, как написать скрипт, чтобы получить номер ревизии, соответствующий времени в прошлом, например 14 дней назад.
В тексте справки это не отображается, но вы можете указать диапазон редакций, используя даты или несколько ключевых слов, так же, как вы можете с обычным svn
команды. Чтобы сбросить коммиты с предыдущего месяца до текущего HEAD:
svnadmin dump /path/to/repo/ -r {2011-05-20}:HEAD > /path/to/dumpfile
Имейте в виду, что этот метод означает, что вам необходимо убедиться, что ваши снимки захватывают каждую ревизию и не перекрываются, поскольку файлы дампа не содержат явной информации о нумерации ревизий. Метод восстановления svnadmin load
просто воспроизведет и изменит нумерацию ваших ревизий, если что-то отсутствует или пересекается.
Я должен упомянуть svnadmin hotcopy
как вариант резервного копирования, поскольку они намного быстрее дампов. (Вы можете использовать обычные автономные дампы из горячей копии, если вам нужны текстовые дампы).