首页 > 其他 > 详细

svn 强制用户添加注释 和 允许用户修改注释

时间:2016-11-16 02:22:59      阅读:203      评论:0      收藏:0      [点我收藏+]

当我们用提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西。所以在提交的时候,我会强制要求添加注释。这是如何实现的?这个话题就涉及到了svn的Hooks功能的使用。

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

那么如何设置hook脚本以保证强制用户添加注释,以及允许用户修改注释呢?

1. SVN强制添加注释信息

用户提交代码的动作,对应的是。因此,进入hook目录把.tmpl文件名修改为, Windows下可以修改为.bat,这样可以让系统知道该文件是可执行文件。

打开文件,注释或删除所有的代码,然后添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/local/bin/svnlook # 修改为服务器安装的subversion目录 whereis svnlook
LOGMSG=$($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>&2
exit 1
fi
 
exit 0

保存,退出。
添加可执行权限:
chmod +x 

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

用户修改注释信息的动作,对应的是pre-revpos-change。将hooks目录下的pre-revpos-change.tmpl改名为pre-revpos-change。通常该文件包含的功能就是允许用户修改注释信息。默认文件内容如下,如果不是下面这些内容的话,可以对照修改即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
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

保存,退出。
将该文件加上可执行权限即可:
chmod +x pre-revpos-change
这样,就可以允许用户修改注释信息了。

svn 强制用户添加注释 和 允许用户修改注释

原文:http://www.cnblogs.com/doseoer/p/6067788.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!