SVN服务器如何创建多个文件夹满足不同的客户端访问呢
你的概念有些混淆。你需要理解几个概念:
1、版本库:这个比较好理解,就是svnadmin创建出来的,存放在服务器端,可以从客户端checkout出来。
2、父版本库:这个是服务器端存放各版本库的父文件夹,客户端不能checkout这一层,但如果是集成了apache的话,可以用浏览器查看这一层,能看到所有的版本库列表。
3、文件夹:这个是版本库内的子文件夹,是由客户端创建后,add、commit到服务器端。顺便提一下,可以直接checkout某个文件夹。
权限文件有多种方式,如果是集成了apache,而且在httpdconf 中关于SVN是指向父版本库的话,一般是同一个父版本库下的所有库的权限都在同一个文件中进行规定,如果在httpdconf 中关于SVN是指向版本库的话,则权限文件只规定这个版本库的访问权限。
trunk、brances、tags这层文件夹,一般是放在版本库根目录下面,是由客户端创建并commit到服务器上。
有个办法可以实现,但安装配置比较麻烦。
要实现你的想法,关键在于要把每个SVN库的权限文件分开存放,而不能是在同一个权限文件中存放所有版本库的权限。这样才有可能把某个权限文件的控制权限只开放给某个SVN管理员。
按照这个思路,在搭建SVN服务器的时候,可以用SVN、Apache集成搭建,在apache的httpdconf的svn那段location中,不用svnparentpath去指向各版本库的父目录,而是用svnpath指向某一个版本库,也就是说为每个版本库写一段location,在每段location中指定一个单独的权限文件,用户ID密码文件可以用统一的。然后通过操作系统的共享权限设置,为每一个权限文件指定对应的管理员,甚至更进一步,将这些权限文件也做成一个单独的SVN库,每个权限文件存放在一个单独文件夹下,设定好每个文件夹的读写权限,再设定一下这个库的post-commit钩子,对这些权限文件有commit操作时,就通过钩子自动在服务器端更新权限文件。
这个过程稍微复杂些,但绝对可以实现,如有不明白可以继续问我。
你看看防火墙里面是否限制了这个程序。正常情况下,当你第一次运行一个网络程序时,windows会弹空格窗问你这个程序是否可以访问网络,如果你拒绝了,就会这样。
还有,如果你是自己在本机做版本控制一般做法是直接用tortoiseSVN在本地创建代码库,不需要subversion之类的东西
0条评论