博客
关于我
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/

    你可能感兴趣的文章
    Oracle 常用的V$视图脚本(二)
    查看>>
    Oracle 并行原理与示例总结
    查看>>
    oracle 并集 时间_Oracle集合运算符 交集 并集 差集
    查看>>
    Oracle 序列sequence 开始于某个值(10)执行完nextval 发现查出的值比10还小的解释
    查看>>
    ORACLE 异常错误处理
    查看>>
    oracle 执行一条查询语句,把数据加载到页面或者前台发生的事情
    查看>>
    oracle 批量生成建同义词语句和付权语句
    查看>>
    oracle 抓包工具,shell 安装oracle和pfring(抓包) 及自动环境配置
    查看>>
    Oracle 拆分以逗号分隔的字符串为多行数据
    查看>>
    Oracle 排序中使用nulls first 或者nulls last 语法
    查看>>
    oracle 插入date日期类型的数据、插入从表中查出的数据,使用表中的默认数据
    查看>>
    Oracle 操作笔记
    查看>>
    oracle 数据库 安装 和优化
    查看>>
    oracle 数据库dg搭建规范1
    查看>>
    Oracle 数据库常用SQL语句(1)
    查看>>
    Oracle 数据库特殊查询总结
    查看>>
    Oracle 数据类型
    查看>>
    Oracle 数据自动备份 通过EXP备份
    查看>>
    oracle 数据迁移 怎么保证 和原表的数据顺序一致_一个比传统数据库快 1001000 倍的数据库,来看一看?...
    查看>>
    oracle 时间函数
    查看>>