码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-11-16 02:24:53      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:isp   class   outline   linux   bin   服务器   文件名   知识   默认   

当我们用提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西。所以在提交的时候,我会强制要求添加注释。这是如何实现的?这个话题就涉及到了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 强制用户添加注释 和 允许用户修改注释

标签:isp   class   outline   linux   bin   服务器   文件名   知识   默认   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!