Subversion 同步备份
备份的服务器已经可以正常使用了,拟对开发环境做备份。因为开发环境采用了 svn 做版本控制,所以可以直接采用 svnsync 来镜像开发环境。
(原文链接 http://ddbiz.com/?p=230)
如下
1) 在备份服务器上新建与开发环境一致的版本库:
svnadmin create /home/sources/svnrepos/repos1
svnadmin create /home/sources/svnrepos/repos2
...
svnadmin create /home/sources/svnrepos/reposn
2) 为新的版本库创建pre-revprop-change钩子脚本(hook script)
在/home/sources/svnrepos/reposx/hooks目录下新建一个空的pre-revprop-change文件
SVNREPOS=/home/sources/svnrepos
cp $SVNREPOS/REALNAME/hooks/pre-revprop-change.tmpl $SVNREPOS/cgps/hooks/pre-revprop-change
chmod u+x,g-rx,o-rx $SVNREPOS/reposx/hooks/pre-revprop-change
3) 初始化版本库:
此操作在开发环境机器上进行
svnsync init svn://backup-hostname/reposx svn://dev-hostname/reposx --username sources --password sources
其中
--username sources
--password sources
为在 backup-hostname 上配置的用户名和密码,如果是使用ssh的管道,可以直接:
svnsync init svn+ssh://backup-hostname/reposx svn://dev-hostname/reposx
4) 同步版本库 :在开发机器上(dev-hostname)
svnsync sync svn://backup-hostname/reposx --username sources --password sources
ssh 管道方式如下:
svnsync sync svn+ssh://backup-hostname/repsox
5) 自动版本库同步
在使用新的版本库之前,还需要根据需要对版本库的访问权限等进行配置。
使用钩子脚本Hooks实现自动同步: 在开发机器上
1) 建立post-committ文件,内容为:
export LANG=en_US.UTF-8
SVN=/usr/bin/svn
SVNSYNC=/usr/bin/svnsync
$SVNSYNC sync --non-interactive svn://backup-hostname/reposx --username sources --password sources
#或:
$SVNSYNC sync --non-interactive svn+ssh://backup-hostname/reposx