2010-03-02 6 views

ответ

11

Ознакомьтесь с разделом Repository Maintenance в книге о том, как вытащить дамп из хранилища. Затем используйте временную службу (например, at или cron, или очень хороший планировщик задач в ОС Windows, зависит от системы вашего сервера), чтобы выполнять свалку в ночное время. Готово.

+0

В зависимости от размера хранилища дамп не лучший способ сделать это, так как создание дампа и восстановление дампа займет некоторое время. Вы должны использовать svnadmin hotcopy –

+0

ссылка на SVNBook относится к устаревшей версии – bahrep

6

Книга SVN содержит раздел Repository Backup.

Команда svnadmin hotcopy позволяет безопасно создавать резервные копии Live-репозитория.

Команда svnsync - это еще одна возможность.

1

Я только что написал короткий сценарий, чтобы выполнить эту работу. Первый запуск делает полную резервную копию, каждый последующий прогон делает только инкремент за последние фиксации во время последней резервной копии. резервные файлы получат номер последней ревизии для отслеживания процедуры.

Настройте нужные параметры для

WORKDIR=path to where this script resists

SVN_REPO_LOCATION=path to where the repository resists on hd

BACKUPDIR=path to where the backup should goes to

SVN_LOACTION=root location which you use in your svn command

и добавить скрипт cronjob, это так.

#!/bin/bash 
WORKDIR=/home/user/svnbackup 
SVN_REPO_LOCATION=/opt/svn 
BACKUPDIR=./backup 
SVN_LOACTION=https://mysvn.server.com/svn 

cd $WORKDIR; 
CURRENT_VERSION=`svn info $SVN_LOACTION | grep Revision | awk '{print $2}'` 
LAST_VERSION=`cat svn.version 2>/dev/null` 
mkdir -p $BACKUPDIR; 
if [ "$LAST_VERSION" = "" ] 
then 
     echo fullbackup; 
     svnadmin dump -q $SVN_REPO_LOCATION > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump; 
     echo $CURRENT_VERSION > svn.version; 
else 
     if [ "$LAST_VERSION" == "$CURRENT_VERSION" ] 
     then 
       echo backup not necessary; 
     else 
       echo incremental; 
       svnadmin dump -q $SVN_REPO_LOCATION -r$LAST_VERSION:$CURRENT_VERSION --incremental > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump; 
       echo $CURRENT_VERSION > svn.version; 
     fi 
fi 
Смежные вопросы