用svnsync 同步备份任意两个svn版本库

试验下来,SVNSync除了目标库为只读之外,其它功能都很强大,实现也相对简单。
http://www.svn8.com/svnsy/20090624/6785.html

如用svnsync 同步备份linux 下svn版本库到Windows
要同步的项目名称:MU
svn版本库1。4以上
源目录:svn://192.168.1.196/mu
目标目录:svn://192.168.1.205/mu
 
方法:
1.如果目标目录存在相同的项目,请先清除,重新建立空项目
svnadmin create mu
2.在mu目录下hooks目录下,建立
pre_revprop-change.bat 全部内容只有一行:exit 0
如果用拷贝同目录下的pre_revprop-change.tmpl 则必须删除最后三行的内容或替换为只有一行:exit 0
不然下面初始化同步的时候,将停顿
 
3. 执行 初始化
svnsync init svn://192.168.1.205/mu svn://192.168.1.196/mu
即svnsync init 目标库 源库
将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码
正确后,显示
Copied properties for revision 0.

4.执行同步
svnsync sync svn://192.168.1.205/mu
即svnsync sync 目标库
正确执行后,显示
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.
Committed revision 4.
Copied properties for revision 4.
Committed revision 5.
Copied properties for revision 5.
Committed revision 6.
Copied properties for revision 6.
Committed revision 7.
Copied properties for revision 7.
Committed revision 8.
...

5.更新同步
在源库的hooks下面,添加post-commit 脚本
可拷贝post-commit.tmpl
 
cp post-commit.tmpl post-commit
然后
把 post-commit 中,最后两行替换为
 
svnsync sync  --non-interactive svn://192.168.1.205/mu --sync-username user --sync-password user
即提交更新后,即执行同步命令,不进行交互
把post-commit 设为755权限。
 
ps:
如果post-commit脚本出错,或者无可执行权限,在提交更新时会报错
posted @ 2010-04-14 14:16  ColorSea  阅读(2766)  评论(0编辑  收藏  举报