|
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 ,如果你再地址栏里输入:
则表示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:
- [subresponsitory:/]
- user1=rw
- user2=r
- user3=
subresponsitory:/表示子仓库subresponsitory下所有的项目
如果某个子仓库没有在策略文件里配置,那么默认是所有用户都没有权限访问
用户组
策略文件里修改为:
- [groups]
- developers=user1,user2
- testers=user3
- #testers=@developers,user3也可以
-
- [subsvn:/]
- @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本身不会被拷贝
|
|
|