搭建环境:
系统:CentOS release 6.7
Ip(主):10.128.1.12
Ip(备):10.129.0.10
文件库:/home/svnroot
主服务器svn搭建
[root@localhost ~]# /etc/init.d/iptables stop
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# setenforce 0
[root@CentOS6 ~]# yum install -y subversion
[root@CentOS6 ~]# rpm -qa subversion (查看版本号)
[root@CentOS6 ~]# mkdir /home/svnroot(创建文件库目录)
[root@CentOS6 ~]# cd /home/svnroot/
[root@CentOS6 svnroot]# svnadmin create /home/svnroot/app(创建名为app的文件库)
[root@CentOS6 svnroot]# cd app/conf
[root@CentOS6 conf]# vim passwd(创建用户及密码)
[sers]
#harry = harryssecret
#sally = sallyssecret
账号 = 密码
账号 = 密码
账号 = 密码
账号 = 密码
Sync = 123
[root@CentOS6 conf]# vim authz(设置账号的权限)
#[repository:/baz/fuz]
#@harry_and_sally = rw
#* = r
[/]
*= rw
[root@CentOS6 conf]# vim svnserve.conf
anon-access = read 改为: anon-access = none
auth-access = write
password-db = passwd (指定用户名和密码的文件)
authz-db = authz (指定权限的文件)
[root@CentOS6 conf]# svnserve -d -r /home/svnroot/
启动svn,启动/home/svnroot/目录下的所有svn库
从服务器svn搭建
[root@localhost ~]# /etc/init.d/iptables stop
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# setenforce 0
[root@CentOS6 ~]# yum install -y subversion
[root@CentOS6 ~]# rpm -qa subversion (查看版本号)
[root@CentOS6 ~]# mkdir /home/svnroot(创建文件库目录)
[root@CentOS6 ~]# cd /home/svnroot/
[root@CentOS6 svnroot]# svnadmin create /home/svnroot/app(创建名为app的文件库)
[root@CentOS6 svnroot]# cd app/conf
[root@CentOS6 conf]# vim passwd(创建用户及密码)
[sers]
#harry = harryssecret
#sally = sallyssecret
账号 = 密码
账号 = 密码
账号 = 密码
账号 = 密码
Sync = 123
[root@CentOS6 conf]# vim authz(设置账号的权限)
#[repository:/baz/fuz]
#@harry_and_sally = rw
#* = r
[/]
*= rw
[root@CentOS6 conf]# vim svnserve.conf
anon-access = read 改为: anon-access = none
auth-access = write
password-db = passwd (指定用户名和密码的文件)
authz-db = authz (指定权限的文件)
[root@CentOS6 conf]# svnserve -d -r /home/svnroot/
启动svn,启动/home/svnroot/目录下的所有svn库
Svn服务建立主从关系
[root@CentOS6 svnroot]# cd app/hooks
[root@CentOS6 ]#cp pre-revprop-change.tmpl pre-revprop-change(配置钩子文件)
[root@CentOS6 ]chmod +x pre-revprop-change
[root@CentOS6 ]vim pre-revprop-change
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1
把配置文件末尾的这几行内容删掉,最后一行保留。并且1改为0
[root@CentOS6 svnroot]# svnsync init svn://10.10.8.110/app svn://10.128.1.12/app(在svnroot目录里建立钩子)
Authentication realm: svn://192.168.1.8:3690 034c4174-74e5-47ac-b072-1ff76c676d7a
Password for ‘root’:
此处直接回车跳过
Authentication realm: svn://192.168.1.8:3690 034c4174-74e5-47ac-b072-1ff76c676d7a
Username:
输入两边svn都有的用户名,此处我输入sync,
Password for ‘sync’:
输入sync的密码
Store password unencrypted (yes/no)?
输入yes储存密码(应该是储存密码。。),储存后以后再拉就不需要登录了,写自动同步的脚本也方便。
从服务器上进行同步
[root@CentOS6 ]# svnsync sync svn://10.10.8.110/app
建立定时任务,实现自动同步
[root@CentOS6 ]#crontab -e
*/1 * * * * svnsync sync svn://10.10.8.110/app >> /opt/svn.log