关闭

apache整合SVN

标签: apachesubversionsvnmicrosoftbasicmodule
1470人阅读 评论(0) 收藏 举报
分类:

SVN冲突的处理方法,合并分支,SVN整合eclipse等等


1.拷贝%SVN_HOME%\mod_authz_svn.so和%SVN_HOME%\mod_dav_svn.so放入%APACHE_HOME%\modules下
2.修改%APACHE_HOME%\conf\httpd.conf文件,修改如下:
  LoadModule dav_module modules/mod_dav.so(去掉前面的注释)
  LoadModule dav_fs_module modules/mod_dav_fs.so(去掉前面的注释)
  LoadModule dav_svn_module modules/mod_dav_svn.so
  LoadModule authz_svn_module modules/mod_authz_svn.so
3.在httpd.conf文件的末尾添加如下内容:
  <Location /svn>
 DAV svn
 SVNPath E:/svn/repository
  </Location>
  此语句块的作用是将SVN的服务器目录映射到访问Apache的虚拟路径svn,就好像我们在配置Tomcat时,增加一个Context一样。即用户访问/svn地址时,Apache会自动将该请求转到E:\svn\repository


整合的权限控制问题:
大家这时会发现即使我们在SVN中设置好了需要登录才能读取文件,但是使用Apache方式通过浏览器依然不需要登录就可以浏览。这是由于SVN与Apache是采用不同的方式来控制访问权限的,如果你使用svn协议来访问,那么就必须输入登录信息才能访问,而如果使用http协议就不需要输入登录信息就可以访问。

4.我们在</Location>之前输入如下信息:
  <Location /svn>
 DAV svn
 SVNPath E:/svn/repository
 AuthType Basic //验证类型采用基本类型
 AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
 AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
 Require valid-user //表示只有认证的用户才能访问,否则匿名用户也可以访问
  </Location>
5.密码文件的创建(使用%apache_home%\bin\htpasswd命令)
   在命令行中输入:htpasswd -c E:/passwd/passwords hello (hello为用户名) (-c表示创建文件 -p使用明文密码)
   提示如下: Automatically using MD5 format.
             New password:
6.父子库的配置说明SVNParentPath,即父库只用来管理子库,每个子库实际上对应一个项目的管理
  <Location /svn>
 DAV svn
 SVNParentPath E:/svn/repository
 AuthType Basic //验证类型采用基本类型
 AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
 AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
 Require valid-user //表示只有认证的用户才能访问,否则匿名用户也可以访问
  </Location>

备注:E:/svn/repository下面必须有子库才可以使用SVNParentPath(详见浪曦的PDF)
 7.权限控制:对于匿名用户可以读,但是只对认证用户开放写操作。
   <Location /svn>
 DAV svn
 SVNParentPath E:/svn/repository
 AuthType Basic //验证类型采用基本类型
 AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
 AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
 <LimitExcept GET PROPFIND OPTIONS REPORT>
  Require valid-user
 </LimitExcept>
  </Location>
  8.权限级次配置
  <Location /svn>
 DAV svn
 SVNParentPath E:/svn/repository
 AuthzSVNAccessFile E:/passwd/policy //此文件中配置了用户对SVN访问的策略文件
 AuthType Basic //验证类型采用基本类型
 AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
 AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
 Require valid-user //表示只有认证的用户才能访问,否则匿名用户也可以访问
  </Location>
  在policy中增加如下内容:
  [helloworld:/]   helloworld子库。。。。。。
  hello=rw 可读可写
  google=r 只读不可写
  microsoft= 不可读不可写
  备注:使用此功能要删除保存在本地的用户认证信息(删除\Subversion\auth这个子目录)
  9.SVN中组的概念
  在公司里都有不同的项目组,每个组对应自己的仓库,一个组有很多组员,如果对于每个组员都去指定他的访问权限显得十分繁琐,我们可
  以利用SVN中组的概念来对用户进行分类,这样大大方便了我们的操作。
  将policy文件修改为如下:
  [groups]
  developers=hello,google
  testers=microsoft
  [helloworld:/]
  @developers=rw     //用@developers来引用之前定义好的组
  @testers=
  [subsvn:/]
  @developers=rw
  @testers=rw

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:312226次
    • 积分:4985
    • 等级:
    • 排名:第5640名
    • 原创:161篇
    • 转载:175篇
    • 译文:1篇
    • 评论:25条
    最新评论