求助高手,如何实现多个管理员对SVN不同的配置库权限进行管控?
可以实现。简单思路是将权限文件分拆成多个,将这些权限文件作为一个SVN库管理,将每个权限文件的修改权限分配给对应的管理员,并在SVN服务器上checkout一个权限文件库的副本出来,Apache的权限定义引用这个副本中的权限文件。
具体实现方法:
1、建立一个新的SVN库(例如SVN库名为accessfile),专门用于存放权限文件,并建立多个文件夹,每个文件夹下面放一个权限文件。
2、在SVN
服务器端
存放accessfile库的hooks文件夹下,创建或修改post-commit钩子(这个钩子是在这个SVN库每次commit成功后,由SVN自动调用执行的),钩子内容是将accessfile库update到服务器主机上某个固定的文件夹(例如文件夹名为d:\access)中。
3、将原有的权限文件分拆成多个,分别存放在d:\access文件夹下的子文件夹内,并修改Apahce的httpdconf,使每个库的权限文件分别指向d:\access下的各权限文件。
4、给accessfile库分配权限,将每个权限文件的写权限分配给不同的管理员。
5、在accessfile库checkout到d:\access。
6、每个管理员从自己电脑上checkout出accessfile库,然后可自行修改权限了,每次修改完一commit,SVN服务器就会自动调用post-commit钩子,将权限文件update到d:\access文件夹,权限就立即生效了。
你的概念有些混淆。你需要理解几个概念:
1、版本库:这个比较好理解,就是svnadmin创建出来的,存放在服务器端,可以从客户端checkout出来。
2、父版本库:这个是服务器端存放各版本库的父文件夹,客户端不能checkout这一层,但如果是集成了apache的话,可以用浏览器查看这一层,能看到所有的版本库列表。
3、文件夹:这个是版本库内的子文件夹,是由客户端创建后,add、commit到服务器端。顺便提一下,可以直接checkout某个文件夹。
权限文件有多种方式,如果是集成了apache,而且在httpdconf 中关于SVN是指向父版本库的话,一般是同一个父版本库下的所有库的权限都在同一个文件中进行规定,如果在httpdconf 中关于SVN是指向版本库的话,则权限文件只规定这个版本库的访问权限。
trunk、brances、tags这层文件夹,一般是放在版本库根目录下面,是由客户端创建并commit到服务器上。
首先这个文件夹必须是受SVN控制的,也就是说这个文件夹是必须从服务器端checkout出来的;然后写一个批处理,里面核心就两行,第一行是svn add ,把所有新增的文件加上add标记,第二行是svn commit 把所有新增和修改过的文件提交到服务器端;然后把这个批处理设置成操作系统的定时任务,每隔一定时间自带执行一次。如何用svn命令行提交某个目录下多个新文件到服务器
你的“同步”指的是什么?可能用语不是很标准。
通常SVN的“同步”指的是两个SVN服务器之间的数据同步,也就是svnsync这个指令。
如果你的同步是指commit,通常翻译为“提交”,那结果是将本地修改的内容上传到服务器;
如果你的同步是指update,通常翻译为“更新”,其作用是将服务器上最新内容下载到本地,但对于你已经修改过的文件保持你修改的状态。如果你修改的这个文件,在你修改期间别人已经修改并上传了,那么update时会提示你发生冲突。
0条评论