如何在CVS存储库中控制文件权限?

时间:2011-01-25 08:23:07

标签: permissions cvs

目前有些用户设置了umask,导致对常规文件执行权限,我想避免

有没有办法强制所有签入的文件只能读取一些例外?

在CVS中处理此问题的建议方法是什么?

2 个答案:

答案 0 :(得分:1)

Cvs命令选项watch也阻止恢复文件权限。如果被观看,当文件被签出时它将是只读的。来自cvs手册页:

$ cvs watch --help_options

Usage: cvs watch {on|off|add|remove} [-lR] [-a <action>]... [<path>]...

on/off: turn on/off read-only checkouts of files

因此,使用cvs watch off filename从存储库中删除签出,使其每次都只读取。

答案 1 :(得分:0)

我不确定这是否是最佳解决方案,但我可能会使用commitinfo,commitcheck和commit_prep.pl对repo的CVSROOT目录中的cvswrappers文件执行某些操作。如果你没有commit_prep.pl,你可以使用类似这样的东西:

http://opensource.apple.com/source/cvs/cvs-29/cvs/contrib/commit_prep.pl

网上有很多例子,所以如果您的回购邮件中没有这些文件,请搜索这些提交文件。

请注意,正如本文所述,该权限实际上只在第一次提交文件时设置,之后,您需要“手动”修改存储库本身的权限。

How do I add execute permission to a file in CVS after it's already been checked in?

在commit_prep.pl中,您可以在首次提交文件之前使用chmod ugo-x清除exec权限。

此解决方案假设您使用的是Linux。