我有一个Linux测试服务器,其中有时系统代码由user1或user2更新。两者都包含在“用户”组中。 对于通常的修改,没有问题,因为所有文件都具有g + w权限。
但是,如果user1添加了一个新目录(使用svn add),则必须手动设置g + w权限,否则user2将遇到该目录的问题(默认情况下,subversion会创建具有755权限的.svn目录)。
是否有任何subversion设置可以自动执行此过程?或者提交后挂钩是唯一的方法吗?
这不是一件紧急事情,所以只是想知道......
提前谢谢。
注意:当然,一种替代方案是每个用户都拥有自己的副本,但对于该特定系统,这是最简单的方法(因为他们不必设置环境两次)。
答案 0 :(得分:4)
一些简单的想法:
让cron作业定期清理树上的权限。这就是我过去使用这样的共享文件系统区域所做的事情,尤其是强制执行不是任何一个用户的默认组的特定组名。
设置每个用户的umask(即.bashrc中),以便新创建的文件可以进行组写。即:
umask u=rwx,g=rwx,o=r
将导致新文件创建为-rw-rw-r--,新目录创建为drwxrwxr -
很抱歉,这些都不是特定于svn的,如果我找到设置“svn umask”的方法,我会用编辑回来。
SVN book建议用首先设置umask的包装shell脚本替换svn二进制文件,然后运行实际的svn命令。