SVN管理系统安装及操作

防伪码:学习永远不晚


前言: SVN是Subversion的简称,是一个开放源代码版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。


理论:

SVN运行方式:

svn服务器有2种运行方式: 独立服务器和借助 apache运行。两种方式各有利弊,用户可以自行选择。

SVN存储版本数据有两种:

svn存储版本数据也有2种方式: BDB(一种 事务安全型表类型)和 FSFS(一种不需要数据库的 存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

SVN有什么优缺点????

缺点:

1、服务器压力太大,数据库容量暴增。

2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。

3、不适合 开源开发(开发人数非常非常多,但是 Google app engine就是用svn的)。但是一般 集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。


优点:

1、管理方便,逻辑明确,符合一般人思维习惯

2、易于管理,集中式服务器更能保证安全性。

3、代码一致性非常高。

4、适合开发人数不多的项目开发。

5、大部分 软件配置管理的大学教材都是使用svn和 vss


理论到此结,下面是真实环境中的操作:



服务器:DELL服务器 

root用户操作


建议安装前更新操作系统:

wKioL1hbR7zDhCwdAAAd_ODL4tM794.png-wh_50

更新完成后重启系统:

wKioL1hbWhKTiexmAAAFgKTSKPk398.png-wh_50

更新后,重启时centos的系统开机界面:

wKioL1hbW0TjpLGJAABtwHoIEZU525.png-wh_50

安装apache并启动

wKiom1hbW1_CEzU6AAAbEF91WpM303.png-wh_50

wKioL1hbW1-g_QwXAAAUXTtJFZI378.png-wh_50

wKiom1hbW2CCTAawAAAHVrLj-JE340.png-wh_50

修改httpd配置文件(修改如下)

wKioL1hbXR3QrtbPAAAHinxcCLU789.png-wh_50

wKiom1hbXR3j-MHuAAA4YkcsroI590.png-wh_50

一定要设置防火墙规则:
wKiom1hbXffi8eKsAAAMSRf6X9Q239.png-wh_50

wKioL1hbXjDBBBzxAAAeakfB5m4194.png-wh_50

下面访问一下我们的apache首页

wKiom1hbXyig-x_xAAEN5ni4ui4801.png-wh_50

看到这个界面说明我们的apache已经搭建成功了

下面开始搭建我们的SVN服务

安装SVN服务

wKiom1hbYOiQto43AABJ6ab6YXY964.png-wh_50wKioL1hbYNewg2hEAAALcK8-I3E304.png-wh_50

PS:必须安装mod_dav_svn模块

安装完SVN要重启apache

wKioL1hbYUXTldRIAAAOkiPJNps116.png-wh_50

查看测试是否安装SVN模块

wKioL1hbYhGB1QyyAAAOwY-qf_Y679.png-wh_50

查看SVN版本等信息

wKioL1hbYiqgOFZEAABBIyXJMQQ411.png-wh_50

创建SVN库主目录 (多库模式,一份配置文件管理多个库使用)

wKiom1hbYwHDb_kVAAAEHB3tPBs967.png-wh_50

wKioL1hbYwKgwcZiAAAMLsl7EiE052.png-wh_50

此时就可以看到一个subversion.conf配置文件(是在安装mod_dav_svn模块时生成的)

修改如上的配置文件

添加以下内容:

wKioL1hbZP-zz7mfAAAFKl9NlSQ069.png-wh_50

wKiom1hbZQCypkVPAAAmmyzrLh0368.png-wh_50

创建/svn/passwd.http和/svn/authz

wKioL1hbZTHgQjfQAAAMrPBZ4Qo512.png-wh_50

重启apache

wKiom1hbZXbiVHKFAAAM3cF5I5U749.png-wh_50

接下面要安装jsvnadmin

简单介绍一下svnadmin

一般在Google Code上,需要FQ才能下载。

安装包为:svnadmin-3.0.5.zip

(因为事先我已经把包下载到了本地,所以可以直接安装,大家在安装时,如没有此包可在线下载)

安装mysql(单独安装mysql,与业务系统的数据库建议要分开)

wKioL1hbZ-aAcN2TAAAFKAMOuP0237.png-wh_50

查看该系统上是否已安装mysql数据库,如果已安装可以通过rpm -e 或者 rpm -e -nodeps来卸载

wKioL1hbaIbzGI8lAABXsCS8y3Y337.png-wh_50

wKioL1hbaJbA2mEAAAALX2VuOH4008.png-wh_50

查看mysql有没有设置开机启动,设置成开机启动

wKioL1hbaTzzGbl8AAAJFBTmgcs879.png-wh_50

wKiom1hbaT2wkNVjAAAHqwyrHW8681.png-wh_50

为了方便我们后期远程管理数据库,可以将防火墙3306端口打开:

重启防火墙,使端口配置生效

wKiom1hbagDwU5lNAAAc5lhonm4049.png-wh_50

设置mysql数据库root用户的密码:

wKiom1hba86B0ZmXAAAKSUdZMCE308.png-wh_50

登陆数据库

wKiom1hba-ryKMyCAAAJGUQ5VbY956.png-wh_50

MYSQL授权远程访问(用root登陆mysql)

wKiom1hbbEWxeOYSAAANbkBSI3U362.png



刷新一下

wKiom1hbbLjjCKXwAAAIDaBiv-M999.png-wh_50

使用tomcat7部署svnadmin

wKiom1hbbYnBUyNNAAAXdPXV7X0038.png-wh_50

wKioL1hbbZOSIowVAAA7chFqDvc790.png-wh_50

wKioL1hbbZ_SiXtIAAAInbfamY8558.png-wh_50

如果没有下载可使用wget下载最新版的tomcat7的tar.gz包

修改tomcat的端口号为9000和容器编码为UTF-8

wKioL1hbblyCRb60AAAGnVfKyBE681.png-wh_50

修改一下画红方框的地方:

wKioL1hbb0zBsfudAAAF9Ucghl8500.png-wh_50

wKiom1hbb02w4cdhAAANo4w7xa8035.png-wh_50

设置防火墙9000端口,并重启防火墙,使其规则生效

wKiom1hbb9nyO5RtAAAgmH2HhbE780.png-wh_50

进入svnadmin-tomcat删除webapps下所有的文件

wKiom1hbc3-Sc-7XAAAMiYNd99Y994.png-wh_50

wKiom1hbc8zDoRYIAAAMJlQItcg588.png-wh_50

wKioL1hbc9-hF225AACWvVmM5XU865.png-wh_50

mv走svnadmin.war为了备份此文件:

wKiom1hbc--RR8qTAAAFrEzrIng053.png-wh_50

如解压成功svnadmin.war,进入svnadmin下可以看见WEB-INF

wKioL1hbc_CRSAH3AAAXy_v3WEg374.png-wh_50

修改jdbc.properties配置文件

修改内容如下图画红方框位置:

wKiom1hbdYmh8IAFAAAZBotZBf4678.png-wh_50

创建svnadmin数据库并导入相应数据(UTF-8编码)

wKiom1hbiujypmCFAAALUw6bpaA377.png-wh_50

wKioL1hbiunQOdaHAABO3U8y5x4732.png-wh_50

wKioL1hbiwHROj6QAAAYIAaX194662.png-wh_50wKioL1hbiyei-5RhAAAViaQqgqg004.png-wh_50

执行db/mysql5.sql和db/lang/en.sql 

启动svnadmin-tomcat

wKioL1hbizrj-QTHAAApkjM2E6o036.png-wh_50

网页登陆svn 

输入账号密码

wKiom1hbjFawanwnAABuYPqvTMI948.png-wh_50

配置并创建库

wKioL1hbjLCDa37kAACWRxN3fHs026.png-wh_50

wKioL1hbjLHQCPo9AAB73vC2eQI955.png-wh_50

wKiom1hbjLHzP_HDAACRDVFRyxY080.png-wh_50

设置完后,/svn/目录下会创建一个wusc_edu(自己设置的项目名为啥)的svn库目录。

同时也会多出一个httpd.conf文件,内容与subversion.conf一样,在

/etc/httpd/conf.d/subversion.conf中已经配置。

/svn/authz授权文件中会多出如下内容:

[aliases]

[groups]

wusc_edu_develoer=

wusc_edu_manager=

wusc_edu_tester=


[wusc_edu:/]

@wusc_edu_manager=rw

以上过程其实是调用了svn对应的命令做了相应的操作

配置库目录权限

cd /svn

chown -R apache.apache wusc_edu

chmod -R 777 wusc_edu

关闭SElinux(linux的访问控制)

重启即可

reboot

先安装 SVN 管理客户端 TortoiseSVN,方便对 SVN 库的操作和管理 

接下来我们就可以对库进行相应的操作

如:用户组、用户、授权、导入项目 


SVN的安装及操作到现在为止就结束了。希望大家可以学会这一堂课的知识。