简介:

SVN是Subversion的简称,是一个开放源代码的版本控制系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。也就是什么时候会用到svn呢,就是在很多人共同完成一个项目时,需要多个人共同维护更新时;svn就是用来提供这样的需求的。

首先说明一下我的需求我;目前公司有两个项目;我准备在一台服务器上同一个目录下存放两个资源仓库[资源仓库说白了也就是存放着你一个项目的目录]。那我们接下来就开始配置了。


一:linux服务器端配置

1:首先是安装svn服务

 安装方法很简单:在很多linux系统的软件仓库中都已经包含了svn服务的安装包

 以CentOS为例:

 只需: 

[root@localhost /]# yum install subversion

2:需要新建一个目录用来存放svn资源仓库

[root@localhost /]# mkdir /source

3:接着需要新建所需资源仓库;[在此我需要两个资源仓库pro1和pro2] 

 [root@localhost /]# svnadmin create /source/pro1
 [root@localhost /]# svnadmin create /source/pro2

 在执行完上方的命令后会发现在 pro1 pro2 的目录下会有几个文件出现:

 [root@localhost /]# ls /source/pro1
 conf db format hooks locks README.txt

 简单说下一这几个文件用途

   conf   :所属仓库的配置文件(可以设置仓库的用户访问账号、权限等)

   db     :所有版本控制的数据存放文件

   format : 是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号

   hooks  : 存放hooks脚本的目录[简单点的使用就是比如开发团队提交更新后,不需要你手动更新而自动完成服务器上的更新] 

  locks   :用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端

4:接着就是配置:

  首先配置svn服务主要配置文件 svnserver.conf 配置文件目录/source/pro1/conf/svnserver.conf

  主要配置项如下:

  [general]

  anon-access = read    #匿名访问的权限,可以是read,write,none,默认为read

  auth-access = write   #认证用户的权限,可以是read,write,none,默认为write[即为读写]

  password-db = /source/pro1/conf/passwd  #认证用户的密码文件路径

  authz-db = /source/pro1/conf/authz     #认证用户的权限文件路径

  realm = svn for pro1  认证命名空间,subversion会在认证提示里显示

5:配置用户访问密码:

  配置文件 /source/pro1/conf/passwd

  内容格式: 

 [users]
 <用户1> = <密码1> pro1 = pro1

  我的配置:

 [users]
  pro1 = pro12345

6:配置用户访问权限:

  配置文件 /source/pro1/conf/authz 

  内容格式:

[<版本库>:/项目/目录]
 @<用户组名> = <权限>
 <用户名> = <权限>

  我的配置:只有pro1用户拥有读写权限,其他用户无任何权限

  [pro1:/]
  pro1 = rw
  * =

 以上配置文件都是及时生效的,不需要重启svn服务

7:启动svn

  svnserve -d -r /source

  -d 为demon -r 为 root 至于目录为仓库的上层目录 即pro1的上层 /source

8: 记得修改防火墙,svn服务默认的服务端口3690,当然也可以指定端口  - -listen-port 参数指定 

二:windows客户端验证

1:下载TortoiseSVN 客户端安装

2:安装好之后,一般在桌面右击菜单将出现TortoiseSVN-->Repo-brose然后会弹出一个输入url的窗口,然后出入

  svn://svn服务器Ip/pro1[仓库名]

3:输入对应的用户名:pro1 密码:pro12345 即可进入,刚开始为空

4:然后就可以上传你的源码或者其他文件到svn服务器