[转] svnsync异地备份subversion版本库

转自:http://blog.csdn.net/zhangboyj/article/details/6158434

好像那个作者也是转别人的帖子,但没有说从哪里转的。

今天主要是subversion利用svnsync工具进行版本库的备份。
先介绍下环境: 有2台debian Linux,都是在虚拟机上的,IP分别为172.16.1.153 172.16.1.177 实验的目的是版本库的远程备份,将版本库备份到另一台机器上。
153就是之前配的那台,177是今天现配的。 在配置177时,出来点小问题 就是在登录时出现了错误,出现一大堆英文,大致意识是内部出现错误无法响应请求 到/var/log/apache2/error.log下去查看,提示没有 /etc/apache2/dav_svn.passwd这个文件, 仔细一看,原来是我在敲文件名时敲成了dav_sav.passwd 赶紧用mv 命令把文件名改正确。在真机上测试下,OK! 接下来就是版本库进行同步了 利用svnsync来同步版本库,达到备份版本库的目的,要用到2个命令 1).svnsync init 初始化,建立目标库和源库之间的同步关系 命令格式 svnsync init 目标库URL 源库URL 2).svnsync sync 真正的同步 命令格式 svnsync sync 目标库URL 因为我在2台机器上都装了apache,所以全都使用http协议 过程: 1,在77上建目标库 svnadmin create /usr/share/back 2,在77上修改脚本pre-revprop-change REPOS=”$1″ REV=”$2″ USER=”$3″ PROPNAME=”$4″ ACTION=”$5″ 除了这几行,其余的全都用#符号注释掉, 3,接下来是让这个脚本有执行权限 chmod +x pre-revprop-change 4,初始化 还是在77上 svnsync init [url=file:///usr/share/back]file:///usr/share/back[/url] http://172.16.1.153/svn 我这直接让我输入root的密码,输入正确后就初始化完成了 (svnsync init shttp://172.16.1.177/lei http://172.16.1.153/svn———-这样的话会让你分别输入2台机器的root密码) 5,同步 机器77上 svnsync sync [url=file:///usr/share/back]file:///usr/share/back[/url] 到这就全都OK了,网上也有很多文章,或许是环境,系统的不一致吧,反正我按照他们的步骤来做没有成 功过,或多或少的出现错误,不过值得庆幸的是最终还是完成了。 后记:可以通过crontab来实现自动同步,本想通过post-commit钩子来实现的,但解决不了,只能退而求其次了。