zoukankan      html  css  js  c++  java
  • SVN的Hooks功能--强制添加注释

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

    SVN版本库目录下有hooks目录,里面有很多.tmpl的文件。这些文件用以定义某些动作触发的 hook脚本。默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的。相当于Netfilter的各个hook点没有注册hook函数。所以,当用 户执行相关维护代码动作的时候,也不会触发hook脚本。因此,在默认状态下,用户提交代码的时候,不用添加注释信息也会被版本看所接受。而且,用户想修 改自己的注释时,会得到服务器拒绝的相关提示信息(本人搭建的svn server是这样的默认情形)。

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

    1. 强制添加注释信息 
    用户提交代码的动作,对应的是pre-commit。因此,可以修改pre-commit.tmpl文件。
    文 件名修改为pre-commit, Windows下可以修改为pre-commit.bat。这样可以让系统知道该文件时可执行文件。

    将 文件中以下几行内容注释掉, 前面添加'#' 
    $SVN LOOK log -t "$TXN" "$REPOS" | 
    grep "[a-zA-Z0-9]" > /dev/null || exit 1 
    commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1 

    并在此位置添加如下几行: 

    LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` 
    if [ "$LOGMSG" -lt 5 ];#要求注释不能少于5个字符(数字和字母),您可自定义 
    then 
       echo -e "nLog message cann't be empty! you must input more than 5 chars as comment!." 1>&2 
       exit 1 
    fi 

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

    #!/bin/sh
    
    export LANG=en_US.UTF-8
    
    REPOS="$1"
    TXN="$2"
    
    SVNLOOK=/usr/bin/svnlook
    
    LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` 
    if [ "$LOGMSG" -lt 8 ];
    then 
    echo -e "================================================" 1>&2
    echo -e "nLog message cann't be empty! you must input more than 5 chars as comment!" 1>&2
    echo -e "                                    Powered By PHPdragon" 1>&2
    echo -e "================================================" 1>&2 
    exit 1 
    fi
    
    # All checks passed, so allow the commit.
    exit 0


    经过该设置,用户提交代码时注释信息小于5个字符将会得到警告,并且代码不会被提交到版本上。

  • 相关阅读:
    机器学习之KNN算法学习笔记
    机器学习之决策树算法学习笔记
    RNN神经网络
    深度学习笔记-Tensorflow(一)
    CNN卷积神经网络-tensorflow
    个人喜欢的网址
    CSP2020游记
    题解 GDFZOJ 2020普转提十连测day5
    讲义 GDFZOJ 【38】 动态规划基础3
    题解 GDFZOJ 【2314】 东风谷早苗
  • 原文地址:https://www.cnblogs.com/phpdragon/p/4519807.html
Copyright © 2011-2022 走看看