svnsync可以方便的把另一个源svn版本同步到指定版本库中,为多版本库应用提供方便。
示例: (版本库所存目录 /svn/ 下)
源版本库: svn://196.168.0.1/testA 同步用户:sync_source 密码:123456
目标版本库: svn://196.168.0.2/testB 同步用户:sync 密码:123456
源版本库用于开发编辑提交等应用,目标版本库只能可读用于上线备份等应用。
进入目标服务器:
编辑sync同步必要hooks脚本pre-revprop-change,(进入版本库hooks目录)
1
|
cp
pre-revprop-change.tmpl pre-revprop-change
|
修改权限,允许执行
1
|
chmod
a+x pre-revprop-change
|
编辑(注释所有可用代码)
1
|
vi
pre-revprop-change
|
追加如下代码(注释代码为同步过来能自动更新到站点中,如果没有站点可去掉)
1
2
|
#svn up /www/testB/ --username=sync --password=123456
exit
0
|
同步配置初始化
1
|
svnsync init
file
///svn/testB
svn:
//196
.168.0.1
/testA
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache
|
执行同步
1
|
svnsync
sync
svn:
//196
.168.0.1
/testA
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache
|
进入源服务器:
编辑提交使用的post-commit脚本(进入版本库hooks目录)
1
|
vim post-commit
|
最后面追加内容 (每次提交过来自动同步)
1
|
svnsync
sync
svn:
//196
.168.0.2
/testB
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache
|
注意,在提交勾子中使用直接命令会影响提交速度,可以使用
1
|
(svnsync
sync
svn:
//196
.168.0.2
/testB
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache &)
|
现在可以测试提交下文件,然后查看两个版本库是否同步。
本文转自 ttlxihuan 51CTO博客,原文链接:http://blog.51cto.com/php2012web/1852311