博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVN的Hooks功能--强制添加注释
阅读量:5879 次
发布时间:2019-06-19

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

所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念。当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本。

SVN版本库目录下有hooks目录,里面有很多.tmpl的文件。这些文件用以定义某些动作触发的 hook脚本。默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的。相当于Netfilter的各个hook点没有注册hook函数。所以,当用 户执行相关维护代码动作的时候,也不会触发hook脚本。因此,在默认状态下,用户提交代码的时候,不用添加注释信息也会被版本看所接受。而且,用户想修 改自己的注释时,会得到服务器拒绝的相关提示信息(本人搭建的svn server是这样的默认情形)。
那么如何设置hook脚本以保证 强制用户添加注释,以及允许用户修改注释呢?
1. 强制添加注释信息 
用户提交代码的动作,对应的是pre-commit。因此,可以修改pre-commit.tmpl文件。
文 件名修改为pre-commit, Windows下可以修改为pre-commit.bat。这样可以让系统知道该文件时可执行文件。
将 文件中以下几行内容注释掉, 前面添加'#' 
$SVN LOOK log -t "$TXN" "$REPOS" | 
grep "[a-zA-Z0-9]" > /dev/null || exit 1 
commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1 
并在此位置添加如下几行: 
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` 
if [ "$LOGMSG" -lt 5 ];#要求注释不能少于5个字符(数字和字母),您可自定义 
then 
   echo -e "nLog message cann't be empty! you must input more than 5 chars as comment!." 1>&2 
   exit 1 
fi 
保存,退出。 
给pre-commit添加可执行权 限 : 
chmod +x pre-commit 

#!/bin/shexport LANG=en_US.UTF-8REPOS="$1"TXN="$2"SVNLOOK=/usr/bin/svnlookLOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` if [ "$LOGMSG" -lt 8 ];then echo -e "================================================" 1>&2echo -e "nLog message cann't be empty! you must input more than 5 chars as comment!" 1>&2echo -e "                                    Powered By PHPdragon" 1>&2echo -e "================================================" 1>&2 exit 1 fi# All checks passed, so allow the commit.exit 0

 

经过该设置,用户提交代码时注释信息小于5个字符将会得到警告,并且代码不会被提交到版本上。

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

你可能感兴趣的文章
用python操作mysql数据库(之“更新”操作)
查看>>
windows server 2012 r2 iis8.5 部署asp.net mvc4/5程序小结
查看>>
服务器公共组件实现 -- 环形缓冲区
查看>>
大咖云集,技术宅开趴倒计时 —— 2017 Kubernetes Meetup | 成都站
查看>>
Freemarker商品详情页静态化服务调用处理
查看>>
阿里云发布新物种神龙云服务器 媲美物理机性能的弹性云服务器
查看>>
jvm系列(六):Java服务GC参数调优案例
查看>>
一点BPXA的思考
查看>>
IDC:传统vs.新兴,中国医疗信息化何去何从?
查看>>
IT168调查:云计算在中国还很“虚”
查看>>
英特尔Skylake处理器全面入驻Google Compute Engine
查看>>
NEC携手英特尔开发Cloud RAN解决方案 ,推进5G“最好时代”的到来
查看>>
D-Link家用路由器被曝大量严重漏洞
查看>>
NEC与日挥就利用AI、IoT技术改善工厂运营展开合作
查看>>
盘点:2016财年全球大型存储营收排名前九位的企业
查看>>
盛邦安全网站监控预警平台化繁为简 ——网站安全从管理向治理的迁移
查看>>
AMD至真至幻VR科技 精彩亮相6·18海交会
查看>>
2.5和5GbE交换机的出现:是好是坏?
查看>>
《Web安全之机器学习入门》一 1.6 本章小结
查看>>
Akamai发布2016Q2互联网发展状况安全报告 称中国是全球第二web攻击源
查看>>