1:安装svn客户端, 而且在客户端下,php
能创建仓库,在本身的硬盘上,建一个库linux
利用 file:///D:/xx/yy来管理本身的仓库.apache
2:把svn与apache整合.windows
2.1为何与apache一块儿整合?app
答:由于80端口支持普遍.ide
2.2: 整合步骤svn
在windows,选取与apache相适应的subversion的压缩包,并与apache整合.测试
下载地址:http://sf.net/projects/win32svnui
在linux下,通常是下载源码.net
地址: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 只读
任意用户 读权限