求助高手,如何实现多个管理员对SVN不同的配置库权限进行管控?

求助高手,如何实现多个管理员对SVN不同的配置库权限进行管控?,第1张

可以实现。简单思路是将权限文件分拆成多个,将这些权限文件作为一个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的>这个不是通过简单的权限配置的实现的,而是要修改start-commit或者pre-commit钩子,这个钩子是SVN服务器在开始commit前自动调用的。
你可以写脚本在钩子里检查提交人是谁、要修改的文件路径是什么,然后综合判断是否允许这次commit。如果判断禁止commit,SVN就会阻止这次commit。

确切说,更新就是比较一下所要更新的文件夹或文件在服务器端的版本和本地(客户端)的版本,如果服务器端版本比本地版本新的话,就把服务器端新版本文件取到本地来。
对于文件夹来说,可能有几种情况:
1、服务器端由于他人的提交新增了某个文件,而本地是没有修改过的旧版本,则用服务器端新版本覆盖本地旧版本;
2、服务器端由于他人的提交新增了某个文件,而本地没有该文件,则从服务器端取下这个文件存放在本地3、服务器端由于他人的提交,删除了某个文件,而本地该文件没有做过修改,则删除本地该文件;
4、服务器端由于他人提交,移动了某个文件到另一个文件夹,而本地该文件没有做过修改,则删除本地该文件夹下的该文件,若同时更新了另一个文件夹的话,则在该文件夹下新增那个文件。
另外,如果本地文件已经做了修改还没提交,而服务器端的该文件已经被别人修改并提交了,则更新时会报告发生冲突。

简单处理的话,就在每个SVN客户端设置忽略这个文件,如果客户端是TortoiseSVN的话,设置属性——全局忽略样式,在里面加上这个文件的名字

但这必须每个客户端都设置这个,如果有人没有设置,他就仍然能够上传。要想确保这个文件不被上传,就得在SVN服务器端设置钩子文件pre-commit,这个钩子会在commit前自动被执行,可以在这个钩子里写脚本来判断上传的文件是否包括你要忽略的文件,如果有的话就拒绝上传。

进入settings查看查看icon overlays中的status cache查看选项是否选的shell ,如果不是,那就更改咯!

开始输入cmd,再输入regedit,调出注册表信息,按下Ctrl+F,在注册表里搜索“ShellIconOverlayIdentifiers”

重命名为前面加几个空格即可,目的是将其排序挪到前面,不让其他程序干扰svn图标的显示

update

重启电脑

号外:
加一个svn cleanup的解释
SVN 本地更新时,由于一些 *** 作中断更新,如磁盘空间不够,用户取消。可能会造成本地文件被锁定的情况。

一般出现这种情况的解决方法:
1、可以使用SVN clean up来清除锁定。
2、如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。
3如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录重新CHECKOUT。但有时有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器,这时重新CHECKOUT需要注意本地文件的备份,并且不要强制覆盖服务器上其它人修改的内容。
4如果觉得第3种很麻烦,可以考虑这样的方法。其实SVN加锁会在SVN(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的,手工删除。然后再尝试更新,系统可能会提示某个base文件无法访问。找到它,把相关的文件或其所在的目录删除,重新UPDATE。工作量就小多了。

再带上一个svn安装指南
>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13233838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-24
下一篇 2023-06-24

发表评论

登录后才能评论

评论列表(0条)

保存