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]