使用svnsync备份很简单,步骤如下:
一、在备份机上创建一个空库:svnadmin create SMP
二、更改该库的钩子脚本pre-revprop-change(因为svnsync要改这个库的属性,也就是要将源库的属性备份到这个库,所以要启用这个脚本):
cd SMP/hooks;
cp pre-revprop-change.tmpl pre-revprop-change;
chmod 755 pre-revprop-change;
vi pre-revprop-change;
将该脚本后面的三句注释掉,或者干脆将它弄成一个空文件。
三、初始化,此时还没有备份任何数据:
svnsync init file:///home/backup/svn/svnsync/SMP/ http://svntest.subversion.com/repos/SMP
语法是:svnsync init {你刚创建的库url} {源库url}
注意本地url是三个斜杠的:///
四、开始备份:
svnsync sync file:///home/backup/svn/svnsync/SMP
这是就一个个版本进行备份了。
附录:
可能的报错一:
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
Failed to get lock on destination repos, currently held by 'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
svnsync: Couldn't get lock on destination repos after 10 attempts
这个时候可能属性被锁了,删掉属性:
svn propdel svn:sync-lock --revprop -r0 file:///home/backup/svn/svnsync/SMP
删除成功后,再试一遍基本就可以了。
如果反复操作都是同样错误的话,有可能是你的svn安装的有问题,重新安装一遍就好了,俺就是这样。
可能报错二、
svnsync: REPORT request failed on 'http://svn1.subversion.com/repos/Relevance'
svnsync: The requested report is unknown.
这是因为你源库的版本太低了,svnsync所需要的函数Report是svn1.4后加入的。没办法,对你的库进行升级后才能备份。
由于执行svnsync sync file:///home/backup/svn/svnsync/SMP 过程中容易出现错误一,避免中途人工干预,我写了一个脚本,来自动修复错误。脚本里面的路径自己来修改吧,我的环境是本地备份到另外一个硬盘。
- [root@smb svn_bak]# cat svnsync.sh
- #!/bin/bash
- while (:)
- do
- svnsync sync file:///svn_bak/svnbak/
- if [ $? != 0 ]
- then
- svn propdel svn:sync-lock --revprop -r0 file:///svn_bak/svnbak/
- fi
- sleep 60
- done
相关推荐
Linux系统,使用SVN自带svnsync进行异地同步增量备份
svn 备份 可以和hook脚本结合,每有更新就可以同步到备份服务器中
svn服务用svnsync命令双机热备
svn-64-客户端+汉化,svn-64-客户端+汉化svn-64-客户端+汉化svn-64-客户端+汉化
SVNsync配置库同步说明
SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置
Windows7+_SVN+_Apache2+TortoiseSVN配置安装
CentOS 7.2 SVN+Mysql+Apache+PHP版本管理工具安装配置教程,自己实践所得成果。网上资源占不到想要的,自己配置完成后编写的文档!
svn+maven+trac+nexus产品集成配置管理
svn服务器端+客户端+eclipse插件,JavaWeb开发必不可少
自己总结的windows版本的jenkins+svn+maven自动部署,其中配合了少量文字和一些截图,希望对大家有所帮助。
svn服务器+svn客户端+svn服务器配置 我建立了一个金山快盘,将svn安装在快盘 在异地打开金山快盘,开启服务器即可同步svn中的工程。
持续集成-SVN+Maven+Hudson+Sonar PPT讲解,持续集成的原理
SVN_1.9.1+汉化包+VisualSVN
nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建二,继之前第二部分
SVN windows 64位安装包+汉化包 来自官网。
nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建:基于敏捷开发流程及持续集成理念,通过工具,搭建软件开发和自动化测试的环境,提高开发效率,简化管理流程;此为部分一
在/svn下面创建脚本svnsync.sh crontab格式说明: 分 时 日 月 星期 用户 执行命令 5 * * * * ls ——指定每小时的第5分钟执行一次ls命令 30 5 * * * ls ——指定每天的 5:30 执行ls命令 30 7 8 * * ls ——指定每...
持续集成环境maven+nexus+jenkins+svn搭建
SVN 安装的所有软件:VisualSVN-Server-4.0.0-x64.msi+TortoiseSVN-1.11.1.28492-x64-svn-1.11.1.msi+LanguagePack_1.11.1.28492-x64-zh_CN.zip SVN安装文档,以及所有需要的软件最新版