Svn 如何自定义Collabnet Subversion边缘存储库访问规则以禁止用户删除文件(无删除)

Svn 如何自定义Collabnet Subversion边缘存储库访问规则以禁止用户删除文件(无删除),svn,pre-commit-hook,svn-hooks,collabnet,subversion-edge,Svn,Pre Commit Hook,Svn Hooks,Collabnet,Subversion Edge,我团队中的一些开发人员疯了……他们有时会删除一个文件。我被派去阻止他们那样做。 到目前为止,我试着跟随(谷歌是我最好的朋友) 在“存储库访问规则”下,我 ##########################SVN组################### [小组] 行政人员:行政,商业数据管理 大卫:abc,鲍勃,罗伯 舞蹈演员:鲍勃 数据库:abc ##############特定于文件夹的访问规则######### [温度:/trunk/] @管理员=rw [温度:/trunk/应用程序/分

我团队中的一些开发人员疯了……他们有时会删除一个文件。我被派去阻止他们那样做。 到目前为止,我试着跟随(谷歌是我最好的朋友)

在“存储库访问规则”下,我

##########################SVN组###################
[小组]
行政人员:行政,商业数据管理
大卫:abc,鲍勃,罗伯
舞蹈演员:鲍勃
数据库:abc
##############特定于文件夹的访问规则#########
[温度:/trunk/]
@管理员=rw
[温度:/trunk/应用程序/分支机构/开发/内部/分支机构]
@DevGrp=rw
[temp:/trunk/applications/branchs/development/choreographer/trunk]
@Choreograher=rw
[temp:/trunk/applications/branchs/development/database/trunk]
@数据库=rw
现在我需要从整个svn中撤销所有组(当然管理员除外)的删除权限。 我读到 但是donno如何拥有两个不同的文件(一个是Collabnet自己的文件,donno在itz存储的地方,另一个作为预提交钩子)来控制访问规则

在更改了以下细节之后,我只是尝试将new-pre-commit-hook.pl添加到我的钩子列表中

SVNLOOK\u DEFAULT=>'/opt/csvn/bin/SVNLOOK',
SVN_REPO_DEFAULT=>'/opt/csvn/data/repositories/hooktest/',
.....
使用常量{#控制文件类型(包控制)
文件\u在\u REPO=>“R”,
文件\u ON_SERVER=>“/opt/csvn/data/repositories/hooktest/hooks/access control.ini”,
};
.....
使用常量有效访问=>qw(ro-rw-ao-nd-na);
....
如果($case eq“ignore”?$file\u name=~/$regex/i:$file\u name=~/$regex/){
if($access eq“rw”){
美元=1;
}
elsif($access eq“ro”){
美元=0;
$description=$file\u rule->description;
}
elsif($access eq“ao”){
$PROPERMITED=$change_type eq已添加?1:0;
$description=$file\u rule->如果不允许$description,则说明;
}
elsif($access eq“na”){
$allowed=$change\u type ne ADDED?1:0;
$description=$file\u rule->如果不允许$description,则说明;
}
elsif($access eq“nd”){
$PROPERMITED=$change\U type ne DELETED?1:0;
$description=$file\u rule->如果不允许$description,则说明;
}
}
我先用标签文件夹试试

控制文件:access-Control.ini

#SVN权限控制文件
##============================传奇====================##
#缩写描述
#只读
#读写
#ao仅添加
#不删除
#不加
##===================SVN组=======================##
[组超级管理员]
用户=adm,bdm
[集团开发商]
用户=abc、bob、rob
[全部分组]
用户=adm、bdm、abc、bob、rob
##=============文件夹特定权限=========##
[文件]
file=/tags/**
访问权限=ro
用户=@all
[文件]
file=/tags/*/*
访问权限=ao
用户=@superadmins
[文件]
file=/tags/**
访问权限=ro
用户=@superadmins
但它没有起作用。我对perl和SVN都很幼稚。请帮忙。 操作系统:Red Hat Enterprise Linux Server 6.3版(圣地亚哥)
关于Subversion Edge:Release:3.2.2

SVN Edge可帮助您配置和管理标准Subversion服务器,其中包括用于的二进制文件。访问规则功能是Subversion本身的一部分,如下所述:

您需要使用此功能来控制谁可以读写您的存储库。这就是Subversion功能的范围

您要做的是进一步分解写入操作以控制谁可以删除,这只是写入的一种形式。Subversion允许您通过插入预提交挂钩来实现这一点。这些记录如下:

听起来你找到了一个可以做你想做的事的钩子。SVN Edge允许您通过web浏览器将钩子脚本上载到存储库钩子文件夹。如果钩子脚本需要一个配置文件,就像这里的情况一样,您也可以上传该文件。您只需要根据需要修补钩子,以便它可以找到SVN二进制文件以及您上载的配置文件。只有在内置的SVN访问规则允许具有写访问权限的人通过其检查后,钩子才会运行


因此,您需要使用SVN访问规则授予用户写访问权限,如果用户试图执行您不想让他们执行的操作,则需要取消写访问权限。

SVN Edge可帮助您配置和管理标准Subversion服务器,该服务器包括的二进制文件。访问规则功能是Subversion本身的一部分,如下所述:

您需要使用此功能来控制谁可以读写您的存储库。这就是Subversion功能的范围

您要做的是进一步分解写入操作以控制谁可以删除,这只是写入的一种形式。Subversion允许您通过插入预提交挂钩来实现这一点。这些记录如下:

听起来你找到了一个可以做你想做的事的钩子。SVN Edge允许您通过web浏览器将钩子脚本上载到存储库钩子文件夹。如果钩子脚本需要一个配置文件,就像这里的情况一样,您也可以上传该文件。您只需要根据需要修补钩子,以便它可以找到SVN二进制文件以及您上载的配置文件。只有在内置的SVN访问规则允许具有写访问权限的人通过其检查后,钩子才会运行


因此,您需要使用SVN访问规则为用户授予写访问权限,然后如果他们试图执行您不希望他们执行的操作,则取消写访问权限。

这是一个很好的问题。否。Subversion存储库控件仅允许您指定是否有人可以读取存储库,或者读取并提交存储库。要获得更好的权限,您必须编写Subversion预提交挂钩,该挂钩允许用户修改,但不允许删除文件/目录。要是有人写了这样一个预提交钩子就好了

等一下!我写了这样一篇文章

这个标准