zoukankan      html  css  js  c++  java
  • svn 强制用户添加注释 和 允许用户修改注释

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

  • 相关阅读:
    jQuery的动画以及扩展功能
    yii2 redirect重定向
    nvaicat mysql ssh 跳板机(堡垒机???)连接服务器
    Linux下Redis的安装
    深入理解PHP的运行模式
    thinkphp5 如何监听sql?
    thinkphp5 如何使用查询事件?
    layui laydate is not defined
    CSS 实现图片灰度效果 兼容各种浏览器
    PHP基础学习----函数
  • 原文地址:https://www.cnblogs.com/doseoer/p/6067788.html
Copyright © 2011-2022 走看看