我需要设置一个SVN仓库,除了两个子文件夹/ 1和/ 2外,devgroup应该拥有完全的读写权限。
对于/ 1和/ 2,四个用户应该有写权限,其他用户只应具有读权限。
我将以下内容放入configuration文件中,但devgroup中的人员仍然在/ 1和/ 2中具有写入权限。
任何帮助将不胜感激。
[project:/] @devgroup = rw [project:/1] @devgroup = r user1 = rw user2 = rw user3 = rw user4 = rw [project:/2] @devgroup = r user1 = rw user2 = rw user3 = rw user4 = rw
您不能从已经授予的用户中删除权限,因此,通过在存储库的根目录处向您提供给所有子树的@devgroup提供读取/写入权限。
我将实现这一目标的方法是将您的项目区域分隔到具有不同权限的不同存储库中,然后使用svn:externals属性将它们捆绑到最高级别的存储库中。
svn:externals属性可以在任何版本化的目录中设置,它的值是一个多行的子目录表(相对于设置了属性的版本化目录),可选修订标志和完全限定的绝对Subversion版本库URL 。
$ svn propget svn:externals . 1 http://svn.example.com/repos/restricted-1 2 http://svn.example.com/repos/restricted-2
当有人签出项目回购的工作副本时,Subversion也继续检查在其外部定义中find的项目。
$ svn checkout http://svn.example.com/repos/project A project A project/Makefile A project/integer.c A project/button.c Checked out revision 148. Fetching external item into 1 A 1/security.c ... Checked out revision 14. Fetching external item into 2 ...
然后,您可以对两个受限制的存储库进行限制,以防止@devgroup用户更新这些存储库,同时在签出主项目回购时仍然可以获取这些存储库。