在SVN中控制上传文件大小与限制中文文件名

修改svn库中 hooks/pre-commit
##控制上传文件大小
#!/bin/sh
REPOS="$1"
TXN="$2"
RES="OK"
SVNLOOK=/usr/bin/svnlook
MAX_SIZE=51200000
files=$($SVNLOOK changed -t $TXN $REPOS|cut -c5-)
for f in $files
do
filesize=$($SVNLOOK cat -t $TXN $REPOS $f | wc -c)
if [ $filesize -gt $MAX_SIZE ] ; then
#export LANG=zh_CN.GBK
export LANG=en_US.UTF-8
echo "New File  $f  Is Too Large(Must<=50MB)" >&2
exit 1
fi
##限制中文文件名
######################
FILE=`$SVNLOOK changed -t $TXN $REPOS`
#echo "`$SVNLOOK changed -t "$TXN" "$REPOS"| cut -c5-`" > /tmp/svn.log
var=`echo $FILE|awk '{print $2}'|awk -F/ '{print $1}'`
case $var in
dev)
$SVNLOOK changed -t "$TXN" "$REPOS" |cut -c5-| grep "[?\ -]" >> /dev/null
if [ $? -eq 0 ]; then
echo "**dev****Chinese filename are not allow!******" >&2
exit 1;
fi
;;
export)
$SVNLOOK changed -t "$TXN" "$REPOS" |cut -c5-| grep "[?\ -]" >> /dev/null
#                $SVNLOOK changed -t "$TXN" "$REPOS" | awk '{print $2}' | grep "[^0-9A-Za-z+.()_-/$]" > /dev/null
if [ $? -eq 0 ]; then
echo "**export****Chinese filename are not allow!******" >&2
exit 1;
fi
;;
*)
#        var2=`echo $FILE|awk '{print $2}'|awk -F/ '{print $4}'`
#        case $var2 in
#                export)
#            $SVNLOOK changed -t "$TXN" "$REPOS"| awk '{print $2}' | grep "[^0-9A-Za-z._$/\-]" > /dev/null
#                if [ $? -eq 0 ]; then
#                        echo "***art/export***Chinese filename are not allow!******" >&2
#                        exit 1;
#                fi
#            ;;
#            *)
#            ;;
#            esac
;;
esac
done
全部为采集文章,文中的 联系方式 均不是 本人 的!

发表评论