水莹儿 发表于 2017-1-3 10:47:12

svn与apache结合二

  1. 如果将Location部分的SVNPath改为SVNParentPath,如下:
xml 代码

[*]<Location /svn>  
[*]DAV svn   
[*]SVNParentPath D:/svn/reponsitory   
[*]AuthType Basic   
[*]AuthName "Subversion Reponsitory"   
[*]AuthUserFile d:/test/passwords   
[*]Require valid-user   
[*]< /Location>  

  则svn 的父仓库我们都无法访问到了,只能访问它的子仓库。
  所以需要建立子仓库:

[*]svnadmin create d:/svn/reponsitory/child1  

  现在如果你向仓库里导入一个project,比如用TortoiseSVN  来import  ,如果你再地址栏里输入:

[*]http://localhost/svn/aaa  

  则表示aaa必须是个已经存在的子仓库。否则失败
  查看的话也是一样的,比如:

[*]http://localhost/svn/bbbb  

  则bbbb也是个已经存在的子仓库。而不是父仓库下的bbbb项目。因为bbbb项目你是没办法访问到了
  如果Require valid-user改为下面:
  则表示匿名用户可以有读权限,而没有写和修改的权限 (一个用户对所有子仓库里的项目权限都是一样的。)

[*]<Location /svn>  
[*]DAV svn   
[*]SVNParentPath D:/svn/reponsitory   
[*]AuthType Basic   
[*]AuthName "Subversion Reponsitory"   
[*]AuthUserFile d:/test/passwords   
[*]< LimitExcept GET PROPFIND OPTIONS REPORT>  
[*]Require valid-user   
[*]< /LimitExcept>  
[*]< /Location>  


  如果再增加个策略文件,(一个用户对所有子仓库里的项目权限都是不一样的。)修改为:

[*]< Location /svn>  
[*]DAV svn   
[*]SVNParentPath D:/svn/reponsitory   
[*]AuthzSVNAccessFile d:/passwd/policy   
[*]AuthType Basic   
[*]AuthName "Subversion Reponsitory"   
[*]AuthUserFile d:/test/passwords   
[*]Require valid-user   
[*]< /Location>  

  编写策略文件内容d:/passwd/policy:

[*]   
[*]user1=rw   
[*]user2=r   
[*]user3=  

  subresponsitory:/表示子仓库subresponsitory下所有的项目
  如果某个子仓库没有在策略文件里配置,那么默认是所有用户都没有权限访问
  用户组
  策略文件里修改为:

[*]   
[*]developers=user1,user2   
[*]testers=user3  
[*]#testers=@developers,user3也可以   
[*]  
[*]   
[*]@developers=rw  
[*]@testers=   
[*]#这里也可以继续添加用户比如 user4=r  

  备份:

[*]svnadmin hotcopy d:/svn/reponsitory d:/backup   
[*]svnadmin hotcopy d:/svn/reponsitory ftp://11.222.11.2   
[*]#reponsitory下的内容拷贝到backup目录下,reponsitory本身不会被拷贝  
页: [1]
查看完整版本: svn与apache结合二