1:安装svn客户端, 并且在客户端下,

能建立仓库,在自己的硬盘上,建一个库

利用 file:///D:/xx/yy来管理自己的仓库.


2:把svn与apache整合.


2.1为什么与apache一起整合?

答:因为80端口支持广泛.


2.2: 整合步骤


在windows,选取与apache相适应的subversion的压缩包,并与apache整合.

下载地址:http://sf.net/projects/win32svn


在linux下,一般是下载源码

地址:http://subversion.apache.org/


2.3:具体操作

2.3-1:解压win32svn压缩包,推荐到apache的平级目录,

并重命名为svn


注意: 我们要做的是把svn 当成apache的一个模块来执行.

和php作为apache来整合,有类似之处.


2.3-2:复制so

把svn/bin中的

mod_authz_svn.so

mod_dav_svn.so

到apache/modules/下面.


2.3-3: 修改配置文件

apache/conf/httpd.conf


把下面这两行前的#号去掉

#LoadModule dav_module modules/mod_dav.so

#LoadModule dav_fs_module modules/mod_dav_fs.so


然后新增2行

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so



2.3-4: 修改环境变量 ,并重启,使环境变量生效.

在环境变量中的path里,加上 svn/bin的路径.

例; D:\amp\svn\bin


3.1:寻立仓库目录

在X盘,例D:/amp


建立仓库目录, 例: D:/amp/repo


3.2: 建立仓库

在D:/amp/repo 下面建立具体的代码仓库.

如D:/amp/repo/orange


3.3: 修改配置文件,httpd.conf

目的:使apache能够对特定目录转发给svn处理.


具体:在httpd.conf后面加上如下几句话:


<Location /svn>

        DAV svn

        SVNParentPath D:/amp/repo  


        #repo目录是所有仓库的上级目录

</Location>


3.4:测试

通过客户端 签出 http://localost/svn/orange 

即可把仓库签出


=====================权限控制==============

再次httpd.conf


<Location /svn>

        DAV svn

        SVNParentPath D:/amp/repo  

        

        AuthZSVNAccessFile D:/amp/repo/authz

        AuthUserFile D:/amp/repo/passwd

        # 上述两行分别代表用户权限表, 用户密码表.


        Satisfy Any

        Require valid-user


        AuthType Basic

        AuthName "hp5qi"



        #repo目录是所有仓库的上级目录

</Location>



============生成用户密码,及配置用户权限==========

在apache的bin目录下面执行!


htpasswd -c D:/amp/repo/passwd stu 

# -c代表新创建,如果是第2次及以后再次增加用户,不要用-c,否则前面的用户都丢失了.


在authz里写权限规则

例: 在D:/repo/orange, 和apple两个仓库

[orange:/]

stu = r

dev = rw



[apple:/]

stu = rw

dev = r

* = r



如上配置中,即说明

对于orange仓库

stu 只读权限

dev 读写权限


apple 仓库

stu 读写权限

dev 只读

任意用户 读权限