- 环境说明
centos6.9
svn主库10.10.0.9
svn从库10.10.0.10 - 安装svn
yum install subversion -y
- 创建库和配置库
创建test库
# mkdir /data/svnroot
# svnadmin create /data/svnroot/test
配置库
权限配置
# cat > /data/svnroot/test/conf/authz << EOF
[aliases]
[groups]
[/]
test-sync = rw
[test:/project/www]
www = rw
[test:/project/app]
app = rw
[test:/project/web]
web = rw
EOF
账号密码配置
# cat > /data/svnroot/test/conf/passwd << EOF
[users]
test-sync = xxxtestsyncxxx
www = xxxwwwxxx
app = xxxappxxx
web = xxxwebxxx
EOF
主配置文件
# cat > /data/svnroot/test/conf/svnserve.conf << EOF
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
EOF
启动svn
svnserve -d -r /data/svnroot/
#指定端口ip启动 svnserve -d -r /data/svnroot/ --listen-host 127.0.0.1 --listen-port 3690
简单使用
用test-sync用户去检出项目,并创建project目录及目录下的app,www,web子目录,提交
地址: svn://xxx.xxx.xxx.xxx/test/
用户:test-sync
密码:xxxtestsyncxxx
其他用户使用
地址: svn://xxx.xxx.xxx.xxx/test/project/www
用户:www
密码:xxxwwwxxx
- 主从库配置
原理:利用钩子,当svn主库有提交时,触发钩子去同步svn从库。
从库搭建:跟主库一样。
配置主库钩子
# cat > /data/svnroot/test/hooks/post-commit << EOF
#!/bin/sh
export LANG=en_US.UTF-8
webco=/data/src/test/project/web
webdir=/data/www/web.xxx.com
##10.10.0.10 svn从库内网ip
svnsync sync --non-interactive svn://10.10.0.10/test --sync-username test-sync --sync-password xxxtestsyncxxx --source-username test-sync --source-password xxxtestsyncxxx
#svn update /data/src/test/project/web
#rsync -a --delete -f '- .svn' $webco/ $webdir
#chown -R www:www $logindir
EOF
# chmod 755 /data/svnroot/test/hooks/post-commit
配置从库钩子
# cat > /data/svnroot/test/hooks/pre-revprop-change << EOF
#!/bin/sh
exit 0
EOF
第一次手动同步从库
# svnsync init svn://10.10.0.10/test svn://10.10.0.9/test
svnsync init svn://从库ip/test svn://主库ip/test
账号test-sync
密码xxxtestsyncxxx
# svnsync sync --non-interactive svn://10.10.0.10/test
相关文章
暂无评论...