首页 > 代码库 > svn 强制用户添加注释 和 允许用户修改注释
svn 强制用户添加注释 和 允许用户修改注释
当我们用TortoiseSVN提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西。所以在提交的时候,我会强制要求添加注释。这是如何实现的?这个话题就涉及到了svn的Hooks功能的使用。
所谓hooks,可以类似理解Linux内核Netfilter框架的hook点和hook函数的概念。当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就会去执行对应hook点的脚本。
那么如何设置hook脚本以保证强制用户添加注释,以及允许用户修改注释呢?
1. SVN强制添加注释信息
用户提交代码的动作,对应的是pre-commit。因此,进入hook目录把pre-commit.tmpl文件名修改为pre-commit, Windows下可以修改为pre-commit.bat,这样可以让系统知道该文件是可执行文件。
打开pre-commit文件,注释或删除所有的代码,然后添加如下代码:
1234567891011 | #!/bin/shREPOS="$1"TXN="$2"SVNLOOK=/usr/local/bin/svnlook # 修改为服务器安装的subversion目录 whereis svnlookLOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep "[a-zA-Z0-9]" | wc -m)if [ "$LOGMSG" -lt 10 ]; then #要求注释不能少于10个字符(数字和字母),您可自定义 echo -e "\nEmpty log message not allowed. Commit aborted!" 1>&2exit 1fi exit 0 |
保存,退出。
给pre-commit添加可执行权限:chmod +x pre-commit
2. 允许用户修改注释信息
用户修改注释信息的动作,对应的是pre-revpos-change。将hooks目录下的pre-revpos-change.tmpl改名为pre-revpos-change。通常该文件包含的功能就是允许用户修改注释信息。默认文件内容如下,如果不是下面这些内容的话,可以对照修改即可:
1234567891011121314 | #!/bin/shREPOS="$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" >&2exit 1 |
保存,退出。
将该文件加上可执行权限即可:chmod +x pre-revpos-change
这样,就可以允许用户修改注释信息了。
svn 强制用户添加注释 和 允许用户修改注释
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。