博客
关于我
svn 钩子 hooks 的 pre-commit 配置递交文件格式,文件大小,备注必填
阅读量:233 次
发布时间:2019-02-28

本文共 4854 字,大约阅读时间需要 16 分钟。

SVN钩子pre-commit脚本实现文件大小限制

在SVN(子版本控制)项目中,为了限制单个文件或压缩包的大小,通常需要在提交前进行校验。本文将详细介绍如何通过pre-commit钩子实现文件大小限制。

钩子文件位置

pre-commit钩子文件位于以下路径:

/svnroot/repository/obdoc/hooks

在Windows环境下,钩子文件名为pre-commit.bat,而在Linux环境下,文件名为pre-commit,无需后缀。需要将pre-commit.tmpl模板文件复制为pre-commit,并赋予可执行权限:

cd /svnroot/repository/obdoc/hookscp pre-commit.tmpl pre-commitchmod 0777 pre-commit

脚本内容解析

以下是完整的pre-commit钩子脚本内容:

#!/bin/shREPOS="$1"TXN="$2"MAX_SIZE=5242880 # 单个文件大小限制(5M)FILTER='.(zip|rar|o|obj|tar|gz|exe)'export LANG=en_US.UTF-8SVNLOOK=/usr/bin/svnlookLOGMSG=$(SVNLOOK log -t "$TXN" "$REPOS" | wc -c)if [ "$LOGMSG" -lt 9 ]; then    echo "请输入8个字符以上的提交说明" 1>&2    exit 1fifiles=$(SVNLOOK changed -t $TXN $REPOS | cut -d " " -f 4-)rc=0echo "$files" | while read f; do    if echo $f | tr A-Z a-z | grep -Eq "(FILTER; then echo "不支持( F I L T E R ; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET; then echo "不支持( FILET;"if [ "$filesize" -gt "$MAX_SIZE" ]; then    echo "ErrorFile: $filesize: $f filesize" 1>&2    exit 1fidone

重要校验逻辑

  • 文件大小限制:检查单个文件大小是否超过MAX_SIZE(5M)。如果超过,返回错误提示。
  • 文件类型过滤:禁止递交ziprar等压缩包文件类型。
  • 备注大小限制:确保提交备注不少于8个字符,避免简短或无意义的备注。
  • 错误校验

    脚本会在检测到文件大小或备注不符合规范时,输出错误提示并终止提交。

    总结

    通过上述方法,可以有效防止大文件或不当文件类型的提交,确保版本控制系统的安全性和规范性。

    转载地址:http://zzcp.baihongyu.com/

    你可能感兴趣的文章
    ntpdate 通过外网同步时间
    查看>>
    ntpdate同步配置文件调整详解
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP服务器
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>
    null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
    查看>>
    Number Sequence(kmp算法)
    查看>>
    Numix Core 开源项目教程
    查看>>
    numpy
    查看>>
    Numpy 入门
    查看>>
    NumPy 库详细介绍-ChatGPT4o作答
    查看>>