首页 > 其他分享 >svnhook---在提交前检查用户是否填入需要的日志

svnhook---在提交前检查用户是否填入需要的日志

时间:2024-08-20 17:29:58浏览次数:10  
标签:tmpl 检查用户 svnhook echo --- hook 提交 commit 日志

一:svnhook机制

svn的hook机制,跟其他很多类似的工具一样,hook机制的本身就是在某个具体的时机所触发的内容,类似于事件驱动的回调。

举个简单的例子,我们使用svn commit的时候如果希望对日志的信息进行判断,如果日志中没有包含指定的信息,提示相关的错误信息,不允许提交。这样的场景,就是hook机制起作用的最为常见的情形之一

 

二:svn的hook模板

 

我们可以在svn的路劲下看到这些模板文件

不过上面的文件均以tmpl结尾,而这样是不起作用的,在Unix/Linux下,删除tmpl的后缀才能起作用

 

三:创建一个脚本检测是否有填入提交信息,并且附上链接

  1. 先复制一个脚本,去掉tmpl后缀,并且给上执行权限
    mv pre-commit.tmpl  pre-commit
     
    chmod +x pre-commit

     


  2. 以下是脚本内容,实现了两个功能,1个是提交日志如果输入的字符少于4个汉字,不允许提交,第二个是如果提交日志没有填入指定的url,也不允许提交

 

#!/bin/sh
REPOS="$1" 
TXN="$2" 
 
# 确保提交的时候必须填写提交备注
SVNLOOK=/usr/bin/svnlook 
 
# 获取提交日志内容
LOGMSG=$($SVNLOOK log -t $TXN $REPOS)

# 计算汉字数
NUM_CHINESE=$(echo "$LOGMSG" | grep -o '[\u4e00-\u9fff]' | wc -l)

# 检查汉字数量是否少于4
if [ "$NUM_CHINESE" -lt 4 ]; then
    echo "至少输入4个汉字" >&2
    exit 1
fi

# 指定需要检查的链接
URL="http://example.com/"

# 检查提交日志是否包含指定字母
if ! echo "$LOGMSG" | grep -q "$URL"; then
    echo "请带上需求单或者bug链接" >&2
    exit 1
fi

exit 0 

 

标签:tmpl,检查用户,svnhook,echo,---,hook,提交,commit,日志
From: https://www.cnblogs.com/a565810497/p/18369876

相关文章

  • mysql错误-The server quit without updating PID file
    说明:尽量不要用root用户安装和启动mysql问题示例原因:一般是root用户执行导致,如果MySQL是root以外用户安装的,则用安装的用户执行不会出差固执:这里就是要用root执行。[root@hadoop01mysql]#servicemysqlstartStartingMySQL.Loggingto'/opt/mysql/data/hadoop01.err'.......
  • svnhook---用户提交后,解析用户的提交信息,发送到企业微信机器人
    一:第一篇写到了在用户提交时做检测,不允许不填写提交日志和特定的信息,感兴趣的可以查看  https://www.cnblogs.com/a565810497/p/18369876二:现在来写一个用户成功提交后,我们拿到svn的提交日志,通过企业微信机器人发送到群组里三:下面是具体操作先复制一个脚本,去掉tmpl后缀,并且......
  • 一篇文章快速了解 Type-C 接口与传统 USB 接口的区别
    面对越来越多的电子产品,USB (Universal Serial Bus) 接口已经成为了我们日常生活中不可或缺的一部分。从最初的USB 1.0到如今广泛使用的USB Type-C(简称Type-C),USB接口经历了多次迭代升级。本文中简鹿办公将重点介绍Type-C接口与传统USB接口之间的主要区别。什么......
  • ToughRADIUS 快速安装指南 - 搭建开源用户认证
    ToughRADIUS快速安装指南ToughRADIUS是一种健壮、高性能、易于扩展的开源RADIUS服务器。本指南将引导您快速地在您的系统上安装和配置ToughRADIUS服务。当前版本是基于Go语言开发的。开源项目地址:https://github.com/talkincode/toughradius官方文档:https://www.to......
  • 5、集成SpringSecurity安全框架---jwt工具类
    token导入依赖<!--jwt--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency><!--jdk9以后已经移除,使用时需要单独导包--><depen......
  • 6、集成SpringSecurity安全框架---
    不使用自带密码校验,创建BCryptPasswordEncoder注入容器,密码加密1、创建loginUser类,实行 UserDetails接口packagecom.exam.entity;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importorg.springframework.security.core.......
  • Effective-Java-Chapter9-通用程序设计
    https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual/blob/dev/Chapter-9/Chapter-9-Introduction.md准则一将局部变量的作用域最小化不要在变量使用之前就申明,在需要使用的时候进行申明。当然这条准则不是那么绝对,大部分时候遵守就好。......
  • 你是如何克服编程学习中的挫折感的?(-@-^-0-)
            在编程学习中遇到挫折感是极为常见且正常的现象,因为编程往往涉及解决复杂问题、理解抽象概念以及不断试错的过程。        以下是一些建议,帮助你在面对挫折时调整心态,继续前行:接受失败是成长的一部分:首先要认识到,无论是谁,在学习编程的过程中都会遇......
  • uni-app vue3 实现微信朋友圈和朋友分享功能
     1.新建share.jsexportdefault{data(){return{}},//1.配置发送给朋友onShareAppMessage(){return{title:'分享的标题',//分享的标题path:'pages/index',//点击分享链接之后进入的页面路径imageUrl:''//分享发......
  • 找两个单词规律-哈希表
     力扣的简单题目,来找单词的规律,下面我们用python的dict来解决,思路:同时遍历pattern和s,因为s是用空格进行分割的,因此用python的split()函数进行拆分即可。Step1:统计pattern和s的长度是否一致,不一致返回FalseStep2:遍历pattern和sStep3:构建p_dict和s_dict用于编码,......