欢迎光临
我们一直在努力

svn实时同步案例!

svnsync应用场景:

1、减缓单个svn版本库的压力

2、更合理分配资源权限


svn实时同步配置:(安全考虑,svn端口和版本库用中文代替)

svn主从搭建:
环境:192.168.1.221  主
      192.168.1.217  从

1、主从分别安装svn版本库(略过)
svn主:
[root@svn hooks]# cp pre-revprop-change.tmpl pre-revprop-change
[root@svn hooks]# chmod +x pre-revprop-change
vim pre-revprop-change
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0

[root@svn ~]# svnsync init svn://192.168.1.221/版本库   svn://192.168.1.217/版本库  --source-username renzhiyuan --source-password renzhiyuan --sync-username renzhiyuan --sync-password renzhiyuan

svn从:
[root@svnbak ~]# cd /usr/local/版本库/hooks/
[root@svnbak hooks]# cp pre-revprop-change.tmpl pre-revprop-change
[root@svnbak hooks]# chmod +x pre-revprop-change
vim pre-revprop-change
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0

初始化备份svn:(初始化之前主库不要存放东西)
[root@svn ~]# svnsync init svn://192.168.1.217/版本库    svn://192.168.1.221/版本库 --source-username renzhiyuan --source-password renzhiyuan --sync-username  renzhiyuan --sync-password renzhiyuan
-----------------------------------------------------------------------
注意!  你的密码,对于认证域:

   <svn://192.168.1.217:端口> 

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
svnsync: 目标版本库已经与“svn://192.168.1.221/版本库 ”同步
[root@svn ~]#

测试数据开始同步:
[root@svn ~]# svnsync sync --non-interactive svn://192.168.1.217/版本库  -source-username renzhiyuan --source-password renzhiyuan --sync-username renzhiyuan --sync-password renzhiyuan
传输文件数据.
已提交版本 1。
复制版本 1 的属性。
[root@svn ~]#
#################################################################################
自动同步配置:
主库:
[root@svn hooks]# pwd
/usr/local/版本库/hooks
[root@svn hooks]# cp post-commit.tmpl post-commit
[root@svn hooks]# chmod +x post-commit

[root@svn hooks]# vim post-commit

#REPOS="$1"
#REV="$2"

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
echo off 
svnsync sync --non-interactive svn://192.168.1.217/版本库   --source-username renzhiyuan --source-password renzhiyuan --sync-username renzhiyuan --sync-password renzhiyuan

效果

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。