Svn 配置限制
针对项目进行文件类型限制
进入到svn项目的hook 目录下
备注:我自己的svn 仓库的地址
1998-2-20 代表是我svn 的仓库
hooks 目录就是设置文件类型限制的位置
进入到hooks目录
发现很多.tmpl 结尾的文件,我们主要用到 pre-commit.tmpl 文件,
第一步
将 pre-commit.tmpl 改名为 pre-commit (.tmpl 去掉)
第二步
Chmod 755 pre-commit 给到755 修改权限为可执行
第三步脚本更改
首先vim 打开脚本拉到最后 显示是这样的!
如下图所示X覆盖的地方全部删除,
修改脚本
REPOS="$1"
TXN="$2"
FILTER='\.(zip|rar|o|ibj|tar|gz)$' #限制扩展名
SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" |wc -c`
if [ "$LOGMSG" -lt 9 ];
then
echo -e "error: can not be empty, you must enter at least 8 characters" 1>&2
exit 1
fi
files=$($SVNLOOK changed -t $TXN $REPOS |cut -d "" -f 4-)
#echo "$files" >&2
#echo "$r" >&2
#exit 1
rc=0
echo "$files"|while read f;
do
if echo $f |tr A-Z a-z|grep -Eq $FILTER;
then
echo "File $f is not allow ($FILTER) file" >&2
exit 1;
fi
filesize=`$SVNLOOK cat -t "$TXN" "$REPOS" "$f" |wc -c`
if [ "$filesize" -gt "$MAX_SIZE" ]; #比对上传文件大小
then
echo "File $f is too large(must <=$MAX_SIZE) B" >&2
exit 1;
fi
done
if [ $? -eq 1 ];
then
exit 1
else
exit 0
fi
-----------------------------------------------------------------------------
FILTER='\.(zip|rar|o|ibj|tar|gz) 为文件限制类型此处填写类型可填写的类型不得上传到svn
保存退出 ,
实验结果进行commit 提交 结果显示如下,限制成功