SVN禁止空日志

  墨菲定律说:“事情如果有变坏的可能,不管这种可能性有多小,它总会发生。”所以,如果提交SVN时可能没有填注释,那么既然有这种可能性它总会发生的,甚至每天都会发生,所以今天我决定,在提交SVN时禁止不填注释,否则拒绝提交。

SVN其实在每次操作的时候都会执行一个脚本,定义了几个事件,在版本库的hooks目录里定义了一些脚本的模板,可以使用这些模板修改一个自己的脚本来响应SVN事件,这些脚本可以做任何事情,可以使用SHELL脚本也可以使用perl甚至python脚本,以后可以通过这些事件来做一些统计分析,这次只说pre-commit事件。

1. 在hooks目录里,复制一个文件pre-commit.tmpl到pre-commit

2. 修改pre-commit文件,注释掉

"$REPOS"/hooks/commit-access-control.pl "$REPOS" $TXN \
"$REPOS"/hooks/commit-access-control.cfg

这两行

3. 在set -e这行的下面添加一段

LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
if [ "$LOGMSG" -lt 6 ];
then
echo -e "\nLog message cann't be empty! you must input no less than 6 chars as comment!." 1>&2
exit 1
fi

因为只要退出时返回值不为0,SVN服务器就认为检查失败,将不进行下一步操作,这里直接返回了1,也可以是其它值。在这里检测日志信息是否小于6个字符,小于六个字符则报错,给出提示。

4. 执行命令,给该事件脚添加执行权限

chmod +x pre-commit


齐活!

这点儿比较好,不用重新启动SVN服务器即可使其生效,但随之而来又有一个问题,那就是说SVN服务器每执行一个操作都会查找对应的事件处理脚本是否存在,如果存在则执行,即使存在也会每次都从磁盘重新读取一次,这样显然会影响程序的执行效率,特别是每次都从磁盘上找,效率是很低的。

所幸,SVN服务器又不会跟数据库似地每秒成千上万次的访问,这点儿效率也不SVN的使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值