源机器:192.168.1.1
备份机器:192.168.1.2
前提条件:
1、两台机器的网络是连通的
2、两台机器必须同时安装了SVN服务器
假设:
源机器上需要同步的库名为autoSync,访问地址为:svn://192.168.1.1/autoSync,对其具备读写权限的账户:sync/sync
备份机器配置:
1、创建与源机器库名相同的空库
 # 假设备份机器的SVN根目录建立在 /home/backup/svn/repository下
# 假设备份机器的SVN根目录建立在 /home/backup/svn/repository下
 svnadmin create /home/backup/svn/repository/autoSync
svnadmin create /home/backup/svn/repository/autoSync2、配置备份机器上的autoSync
分别修改conf下的svnserve.conf、passwd、authz,根据实际情况配置,假设创建了用户sync/sync,对库autoSync具备读写权限,配置方法略,配置完成后启动SVN服务
3、创建并修改pre-revprop-change文件
 cd /home/backup/svn/repository/autoSync/hooks
cd /home/backup/svn/repository/autoSync/hooks
 cp pre-revprop-change.tmpl pre-revprop-change
cp pre-revprop-change.tmpl pre-revprop-change
 vi pre-revprop-change
vi pre-revprop-change改为“exit 0”即可,保存退出
 REPOS="$1"
REPOS="$1"
 REV="$2"
REV="$2"
 USER="$3"
USER="$3"
 PROPNAME="$4"
PROPNAME="$4"
 ACTION="$5"
ACTION="$5"

 if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

 echo "Changing revision properties other than svn:log is prohibited" >&2
echo "Changing revision properties other than svn:log is prohibited" >&2
 exit 0
exit 0

增加可执行权限
 chmod 755 pre-revprop-change
chmod 755 pre-revprop-change4、初始化
命令:
svnsync init --username 用户名 --password 密码 备份机器库URL 源机器库URL
说明:
用户名和密码是对源机器SVN库具备读写权限的SVN用户
示例:
 svnsync init --username sync --password sync svn://192.168.1.2/autoSync svn://192.168.1.1/autoSync
svnsync init --username sync --password sync svn://192.168.1.2/autoSync svn://192.168.1.1/autoSync5、首次同步
首次同步即为一次全备份过程,在此期间请停止客户端段源机器哦一切操作(提交代码等)
命令:
svnsync sync 备份机器库URL
示例:
 svnsync sync svn://192.168.1.2/autoSync
svnsync sync svn://192.168.1.2/autoSync源机器配置
6、增量自动同步配置
创建并修改post-commit文件
 # 假设源机器的SVN根目录建立在 /home/svn/repository下
# 假设源机器的SVN根目录建立在 /home/svn/repository下
 cd /home/svn/repository/autoSync/hooks
cd /home/svn/repository/autoSync/hooks
 cp post-commit.tmpl post-commit
cp post-commit.tmpl post-commit
 vi post-commit
vi post-commit在文件末尾追加:svnsync sync --non-interactive 备份机器库URL --username 用户名 --password 密码
说明:
用户名和密码是对备份机器SVN库具备读写权限的SVN用户
示例:
 svnsync sync --non-interactive svn://192.168.1.2/autoSync --username sync --password sync
svnsync sync --non-interactive svn://192.168.1.2/autoSync --username sync --password sync7、术语
配置完成,今后客户端再向SVN(192.168.1.1)提交文件时,会自动触发源机器(192.168.1.1)向备份机器(192.168.1.2)提交更新
8、版本库UUID一致性
首先查看源机器库的UUID,假设得到的是:fcdcbee9-6be3-4575-8d4a-681ec15ad8e0
 svnlook uuid svn://192.168.1.1/autoSync
svnlook uuid svn://192.168.1.1/autoSync更新备份机器库的UUID为源机器库的UUID
 svnadmin setuuid svn://192.168.1.2/autoSync fcdcbee9-6be3-4575-8d4a-681ec15ad8e0
svnadmin setuuid svn://192.168.1.2/autoSync fcdcbee9-6be3-4575-8d4a-681ec15ad8e0