所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念。当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就会去执行对应hook点的脚本。
SVN版本库目录下有hooks目录,里面有很多.tmpl的文件。这些文件用以定义某些动作触发的 hook脚本。默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的。相当于Netfilter的各个hook点没有注册hook函数。所以,当用 户执行相关维护代码动作的时候,也不会触发hook脚本。因此,在默认状态下,用户提交代码的时候,不用添加注释信息也会被版本看所接受。而且,用户想修 改自己的注释时,会得到服务器拒绝的相关提示信息。
那么如何设置hook脚本以保证强制用户添加注释,以及允许用户修改注释呢?
1. 强制添加注释信息
用户提交代码的动作,对应的是pre-commit。因此,可以复制一份pre-commit.tmpl模板文件。
linux下文件名修改为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
经过该设置,用户提交代码时注释信息小于5个字符将会得到警告,并且代码不会被提交到版本里。
SVN强制添加注释
原创
©著作权归作者所有:来自51CTO博客作者Linus_hai的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux驱动开发之杂项设备注册和Linux2.6设备注册
Linux设备驱动开发中,需要向内核正确注册设备,才能创建设备节点,以供应用层访问。本文将详细介绍Linux下的两种设备注册方法:杂项设备注册和Linux 2.6新方法注册。
Linux驱动开发 杂项设备注册 Linux2.6设备注册 例程分享 相关API -
(转)SVN强制注释
不少开发员提交修改的时候都不写注释,导致查看历史
svn 可执行 自定义 -
java svn提交备注 svn提交has encountered
SVN 提交代码时,出现如下错误:‘SVN’ 更新 has encountered a problem第一种:原因:把SVN上某些源文件删掉了,导致更新不下来(此原因仅供参考)处理办法:(我的处理办法可能有些笨,但绝对实用) 把提交错误的类或接口里所有源码拷贝一下,保存到本地。 &
java svn提交备注 svn 提交 has encounter SVN提交失败 SVN时错误 svn服务器