Я только что написал короткий сценарий, чтобы сделать работу.
При первом запуске выполняется полное резервное копирование, при каждом последующем запуске происходит просто увеличение по сравнению с последними коммитами во время последнего резервного копирования
файлы резервных копий получат номер последней ревизии для отслеживания процедуры.
Установите правильные настройки для
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