测试人生的道路是曲折的,前途是光明的!我将一如即往

Subversion安装及配置

上一篇 / 下一篇  2007-05-31 15:39:15 / 个人分类:配置管理

1.  Subversion简介

Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件,其中包括程序源码。

它实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。


2.  Subversion服务端配置

2.1.安装

安装apache http server和安装Subversion(先安装apache http server再安装subversion,则可以省去一些配置步骤)。

2.2.配置

1.   检查$\apache group\apache2\modules下是不是已经有了mod_dav_svn.somod_authz_svn.so,检查$\apache group\apache2\modules下是不是已经有了libdb42.dll如果先安装apache http server再安装subversion,则可以省去这一步

2.   搜索$\apache group\apache2\conf\httpd.conf配置文件中的#LoadModule dav_fs_module modules/mod_dav_fs.so,把前面的注释#去掉;并检查LoadModule配置节的末尾是不是有了LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so如果先安装apache http server再安装subversion,则这一步只需检查注释#是否去掉)

3.   建立源码库及Subversion数据库
    
在服务器硬盘上建立源码库的根目录,例如:E:\SVN
,E:\SVN之下建立一个新的目录,例如TestRepository作为我们的测试源码库
    
建立Subversion数据库,当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDBBerkeley Database)。在命令行下输入svnadmin create --fs-type bdb TestRepository建立BDB格式的数据库(确保当前目录已经切换到E:\SVN\),在命令行下输入svnadmin create --fs-type fsfs TestRepository建立FSFS格式的数据库(确保当前目录已经切换到E:\SVN\)。建好数据库以后,到E:\SVN\TestRepository下看看是不是多了很多目录和文件,可以研究一下这些文件,对理解Subversion有帮助,但是不要试图直接修改这些文件。

4.   修改相关的配置文件及建立用户帐号:
   
打开$\apache group\apache2\conf\httpd.conf配置文件,在文件的末尾加入以下语句:
<Location /svn>
  DAV svn
    SVNParentPath E:\SVN
    AuthType Basic
    AuthName "Subversion repositories"
    AuthUserFile passwd
    #AuthzSVNAccessFile svnaccessfile
    Require valid-user
</Location>
   
这里建立了一个虚拟目录http://yourServer/svn/,所有的Subversion源码仓库都在这个虚拟目录中,并且使用
passwd文件中username/password(用户名/密码)列表访问http://yourServer/svn/
   
在命令行下切换到$\apache group\apache2,执行bin\htpasswd -c passwd <username>,这里<username>是你想要加入的用户名,比如doudou。执行这个命令成功以后就会在bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行bin\htpasswd passwd <username>即可

5.   重启Apache服务,在浏览器地址栏中输入http://YourServer/svn/TestRepository,输入用户名密码,okSubversion现在已经可以正常工作了。

2.3.Subversion用户及权限管理

首先解释一下Apachehttpd.conf文件里加入的配置信息用途:

<Location /svn>

说明我们所有的代码仓库在/svn这个虚拟目录下

DAV svn

说明Apache会使用svn这个module来解析这个虚拟目录

SVNParentPath e:\SVN

说明所有的代码仓库都在本地硬盘的e:\SVN

AuthType Basic

使用最基本的认证校验,用户名/密码

AuthName "Subversion repositories"

说明在认证对话框弹出的时候,对话框的标题显示,你可以把它修改成你想要的任何提示信息,比如:AuthName "Warning"等等

AuthUserFile passwd

说明我们使用的access list文件的名字,在上一讲中我们建立的文件名字是passwd,所以这里是passwd。如果你建立的文件名字是其他的,这里要作相应的改动

AuthzSVNAccessFile

说明svn自己控制的access list文件,这个文件很重要,可以丰富svn的安全配置

Require valid-user

说明只有输入正确的用户名/密码才能访问

上述的配置只能是最简单的安全配置,如果要拥有更强大的安全配置,就需要加入一些东西了。比如:对于代码仓库里面某些目录还有更细致的访问控制,就需要AuthzSVNAccessFile文件了,去掉#AuthzSVNAccessFile svnaccessfile这一行前面的注释。Apache首先会使用passwd校验用户名和密码,然后会认证信息传给SubversionAuthzSVNAccessFile模块,由这个模块作更进一步的权限控制。

假设服务器文件库结构如下:

首先我们来新建一个文件svnaccessfile,内容如下:

[groups]

HomeInfo = hlb,zrr

Tender = shy,hjx

TZGW2004 = ylm,zhh

[/]

admin = rw

[/share]

* = r

[/HomeInfo]

@HomeInfo = rw

[/Tender]

@Tender = rw

[/TZGW2004]

@TZGW2004 = rw

我们定义了四个组,每个组代表项目组,每个组里面的帐号为项目组成员帐号,然后把每个项目配置库的权限分配给每个项目组成员。

[/]

admin = rw

注意这里的[/],表示是对根目录下的所有代码仓库赋予权限。接着是

[/share]

* = r

意思是对于公共目录所有的用户开放可读的权限;

[/HomeInfo]

@HomeInfo = rw

[/Tender]

@Tender = rw

[/TZGW2004]

@TZGW2004 = rw

注意这里对于每个组,我们指定了目录路径,而不是对于整个代码仓库


TAG: 配置管理

 

评分:0

我来说两句

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 11460
  • 日志数: 10
  • 图片数: 10
  • 书签数: 1
  • 建立时间: 2007-02-07
  • 更新时间: 2008-07-10

RSS订阅

Open Toolbar