2023年6月30日发(作者:)
linuxsvn强制注释,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, Windows下可以修改为。这样可以让系统知道该⽂件时可执⾏⽂件。将⽂件中以下⼏⾏内容注释掉, 前⾯添加'#'$SVNLOOKlog -t "$TXN" "$REPOS" |grep "[a-zA-Z0-9]" > /dev/null || exit "$REPOS" "$TXN" ||exit 1并在此位置添加如下⼏⾏:LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`if [ "$LOGMSG" -lt 5 ];#要求注释不能少于5个字符(数字和字母),您可⾃定义thenecho -e "nLog message cann't be empty! you must input more than 5chars as comment!." 1>&2exit 1fi保存,退出。给pre-commit添加可执⾏权限:chmod +x pre-commit经过该设置,⽤户提交代码时注释信息⼩于5个字符将会得到警告,并且代码不会被提交到版本。2. 允许⽤户修改注释信息⽤户修改注释信息的动作,对应的是pre-revprop-change. 将hooks/下更名为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; fiecho "Changing revision properties other than svn:log is prohibited" >&2exit 1
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688077886a76958.html
评论列表(0条)