百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> SVN限制上传文件类型和强制提交信息
分享文章到:

SVN限制上传文件类型和强制提交信息

发布时间:01/15 来源: 浏览: 关键词:
下面我们来看一篇关于SVN限制上传文件类型和强制提交信息教程希望文章对各位会带来帮助。

pre-commit需要700权限,放置hooks即可
pre-commit

#!/bin/bash

#by mark
#####################################
REPOS="$1"
TXN="$2"
MAX_SIZE=524280 #限制上传文件大小file 5M
FILTER='\.(zip|rar|o|ibj|tar|gz)$' #限制扩展名

SVNLOOK=/usr/bin/svnlook
#LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" |wc -c`
#如果提交的信息小于9则不让提交
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
#check file type
if echo $f |tr A-Z a-z|grep -Eq $FILTER;
then
        echo "File $f is not allow ($FILTER) file" >&2
        exit 1;
fi

#check file size
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
#ALL checks passed. so allow the commit.
if [ $? -eq 1 ];
then
exit 1
else
exit 0
fi

svn1.png
svn2.png

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有7人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板