安装在Linux服务器中的SVN,为了安全起见,设置成员没有删除
文件权限,只有指定的管理员才可以删除。
1、找到svn目录中的hooks目录,找到pre-commit.tmpl文件。
2、编辑模式进入文件,加入以下代码:
#删除权限控制
REPOS="$1"
TXN="$2"
SVNLOOK=SVN路径(例如:/usr/bin/svnlook) #此处路径可以通过which svnlook命令获取
# Make sure that the log message contains some text.
if [ -z `$SVNLOOK log -t "$TXN" "$REPOS" |grep "[a-zA-Z0-9]"` ];then
echo "请输入注释!" >&2
exit 1
fi
USER=`$SVNLOOK author -t $TXN $REPOS`
ADMINLIST=test1,test2 #设置可以删除文件的SVN成员,多个用逗号隔开
if [ "`echo $ADMINLIST|grep -w $USER|wc -l`" -eq 0 ];then
if [ `$SVNLOOK changed -t $TXN $REPOS |grep "^D "|wc -l` -gt 0 ];then
# echo "You Don't have the pemmision of delete!Please contact your administrator!" >&2
echo "你没有权限删除,请联系管理员删除!" >&2
exit 1
fi
fi
# All checks passed, so allow the commit.
exit 0
3、修改完成后保存退出,并将pre-commit.tmpl文件重新命名为pre-commit(重命名命令:mv A B,含义为将文件名A重命名为B)。
4、给钩子脚本执行权限 chmod 755 pre-commit(不需要重启)。
5、完成。