linux svn server搭建、多项目管理及主备方案

linux svn server搭建、多项目管理及主备方案
http://h2ofly.blog.51cto.com/6834926/1539141/
没有实践备库搭建

【第一安装】
yum install subversion


【第二配置】


2.1、创建svn目录
	mkdir -p  /data/svndata/


2.2、创建多项目:将iso、android、web分开管理


	svnadmin create /data/svndata/ios
	svnadmin create /data/svndata/android
	svnadmin create /data/svndata/web
	注意:svnadmin create用于创建独立的项目,创建好之后如下图:


2.3、统一管理配置(用于管理多个项目)
	2.3.1、创建统一管理相关配置文件
		mkdir -p /data/svndata/conf/  #该目录用于管理所有项目的帐号密码、权限控制等
		cat /data/svndata/conf/svnserve.conf
			[general]
			anon-access = read
			auth-access = write
			password-db = passwd
			authz-db = authz
			realm = /data/svndata
			[sasl]
			# use-sasl = true
			# min-encryption = 0
			# max-encryption = 256


		cat /data/svndata/conf/passwd
			[users]
			xionglei = xionglei
			wendy = wendy
			anyin = anyin
		cat /data/svndata/conf/authz
			[aliases]


			[groups]


			[/]
			anyin=rw
			wendy=rw
			w=r


	2.3.2各项目配置文件修改
		每个项目默认使用的配置文件是该项目下的配置文件,所以必须修改掉,否则不受总控配置文件的管理的
		# grep -v '#' /data/svndata/android/conf/svnserve.conf  #其他项目类似,这里就不一一列举了[general] 
		anon-access = none 
		auth-access = write
		password-db = ../../conf/passwd #说明使用总控的密码文件 
		authz-db = ../../conf/authz #说明使用总控的权限文件 
		realm = /data/svndata/android


【第三启动】
	svnserve -d -r /data/svndata/
	ps -aux|grep svnserve
	kill -9 进程


【第四数据初始化】
	已有代码需要导入svn版本库如下
	svn import /tmp/data/ios/ file:///data/svndata/codes/ios/trunk -m 'init import’


【第五备库搭建】
	注:这里使用了svnsync定时同步数据,也可以做实时同步,请自己研究(大致提示为配置钩子post-commit来实现)
	5.1备库项目创建(和主库创建项目无异)以下操作在备库上操作
		mkdir -p  /data/svndata/
		svnadmin create /data/svndata/ios
		svnadmin create /data/svndata/android
		svnadmin create /data/svndata/web
		配置文件也和主库一样:包括总控的配置文件及各项目的配置文件,这里就不详细列了。


	5.2准备备库的钩子(以android项目为例,其他项目一样)以下操作在备库上操作
		cat /data/svndata/android/hooks/pre-revprop-change
		#!/bin/sh
		exit 0
		chmod 755 /data/svndata/android/hooks/pre-revprop-change
	5.3svnsync初始化及同步数据
		这里以android 项目为例,其他项目类似
		注:172.16.0.185 是备库,172.16.0.120是主库;主库和备库的用户名和密码一致,并且h2o需要有相关权限,具体看/data/svndata/conf/authz


		svnsync init svn://139.196.237.225/android svn://172.16.0.120/android --username h2o--password Yj3NlMD --no-auth-cache #svnsync 建立主备库关系
		 
		svnsync sync svn://172.16.0.185/android   --username h2o --password Yj3NlMD--no-auth-cache #svnsync 将数据从主库同步过来


		如果看到以下内容就说明成功了。如果发现只有版本号,没有Transmitting file data,请仔细检查主库备库配置文件,是否有错误和遗漏


		Transmitting file data .
		Committed revision 1.
		Copied properties for revision 1.
		Transmitting file data .
		Committed revision 2.
		Copied properties for revision 2.
		Committed revision 3.
		Copied properties for revision 3.
		Transmitting file data .
		Committed revision 4.
		Copied properties for revision 4.


【第六定时更新脚本】
	在备库上写定时同步的脚本,关键如下


	#!/bin/bash
	now_time=$(
	date "+%F_%T”)
	projects=(android  ios web)
	for project in ${projects[@]};do
	      
	svnsync sync svn://172.16.0.185/$project --username h2o--password Yj3NlMD --no-auth-cache >> /home/logs/svnbak.log.$now_time 2>&1
	done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值