linux svn强制注释,SVN的Hooks功能--强制添加注释和允许修改注释

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

SVN版本库目录下有hooks目录,里面有很多.tmpl的文件。这些文件用以定义某些动作触发的 hook脚本。默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的。相当于Netfilter的各个hook点没有注册hook函数。所以,当用户执行相关维护代码动作的时候,也不会触发hook脚本。因此,在默认状态下,用户提交代码的时候,不用添加注释信息也会被版本看所接受。而且,用户想修改自己的注释时,会得到服务器拒绝的相关提示信息(本人搭建的svn server是这样的默认情形)。

1. 强制添加注释信息

用户提交代码的动作,对应的是pre-commit。因此,可以修改pre-commit.tmpl文件。

文件名修改为pre-commit, Windows下可以修改为pre-commit.bat。这样可以让系统知道该文件时可执行文件。

将文件中以下几行内容注释掉, 前面添加'#'

$SVNLOOK

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个字符将会得到警告,并且代码不会被提交到版本。

2. 允许用户修改注释信息

用户修改注释信息的动作,对应的是pre-revprop-change. 将hooks/下pre-revprop-change.tmpl

更名为pre-revprop-change。通常该文件包含的功能就是允许用户修改注释信息,因此只要将该文件加上可执行权限即可:

#chmod +x pre-revprop-change

默认文件内容如下:

REPOS="$1"

REV="$2"

USER="$3"

PROPNAME="$4"

ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2

exit 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值