SVN服务器

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

  • 1、优点:

    1)、管理方便,逻辑明确,符合一般人思维习惯。
    2)、易于管理,集中式服务器更能保证安全性。
    3)、代码一致性非常高。
    4)、适合开发人数不多的项目开发。
    5)、大部分软件配置管理的大学教材都是使用svn和vss。

  • 2、缺点:

    1)、服务器压力太大,数据库容量暴增。
    2)、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
    3)、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

安装配置SVN服务器

yum install subversion -y

svnserve --version

SVN服务器搭建

mkdir -p /opt/svn/repo #创建目录

svnadmin create /opt/svn/repo #创建一个新的仓库

vim /opt/svn/repo/conf/svnserve.conf #注意:配置项前不能有空格

anon-access = none                      #匿名用户没有任何权限
auth-access = write                     #认证用户具有写权限
password-db = /opt/svn/repo/conf/passwd #用户的密码文件
authz-db = /opt/svn/repo/conf/authz     #用户信息文件

svnserve -d -r /opt/svn/repo/ #开启服务;-d:守护进程 -r:svn根目录

SVN服务器搭建

netstat -tunlp | grep svnserve #查看

vim /opt/svn/repo/conf/passwd #编辑账户密码文件

 zhangsan = abc123                      #用户和密码
 sysadmin = abc123

vim /opt/svn/repo/conf/authz #编辑权限文件

[/]
zhangsan = r
sysadmin = r
[/webphp]
sysadmin = r                            #运维工程师账户具有的读权限,用于部署
zhangsan = rw                           #zhangsan用户对此目录有读写权限

mkdir /opt/svn/repo/webphp

svn import webphp/ file:///opt/svn/repo/webphp -m "初始化SVN目录" #导入webphp目录

验证

  • 在两台win7虚拟机上安装SVN客户端,在第一台win7的webphp目录中创建文件并添加上传后,则在第二台win7中的webphp目录中刷新后也会出现文件;

SVN服务器搭建_第1张图片SVN服务器搭建_第2张图片SVN服务器搭建_第3张图片