zoukankan      html  css  js  c++  java
  • linux svn 提交文件时强制填写备注

    很多程序员不爱写注释,特别是svn提交的时候,文件做了什么修改都没有一个简单的备注,往往都是直接提交,这样是非常不利于团队开发的。所以就有了svn提交的时候,强制修改文件的备注。

    步骤如下:

    1、先找到对应项目的svn版本库hooks

    sudo find / -name hooks

    2、假设进入test_wx项目下面的svn版本库

    复制一份pre-commit.tmpl文件

      cp pre-commit.tmpl  pre-commit

    修改pre-commit的权限

      chmod +x pre-commit

    3、编辑pre-commit文件

      vim pre-commit

    修改后代码如下

      

    # If the hook program exits with success, the txn is committed; but
    # if it exits with failure (non-zero), the txn is aborted, no commit
    # takes place, and STDERR is returned to the client.   The hook
    # program can use the 'svnlook' utility to help it examine the txn.
    #
    # On a Unix system, the normal procedure is to have 'pre-commit'
    # invoke other programs to do the real work, though it may do the
    # work itself too.
    #
    #   ***  NOTE: THE HOOK PROGRAM MUST NOT MODIFY THE TXN, EXCEPT  ***
    #   ***  FOR REVISION PROPERTIES (like svn:log or svn:author).   ***
    #
    #   This is why we recommend using the read-only 'svnlook' utility.
    #   In the future, Subversion may enforce the rule that pre-commit
    #   hooks should not modify the versioned data in txns, or else come
    #   up with a mechanism to make it safe to do so (by informing the
    #   committing client of the changes).  However, right now neither
    #   mechanism is implemented, so hook writers just have to be careful.
    #
    # Note that 'pre-commit' must be executable by the user(s) who will
    # invoke it (typically the user httpd runs as), and that user must
    # have filesystem-level permission to access the repository.
    #
    # On a Windows system, you should name the hook program
    # 'pre-commit.bat' or 'pre-commit.exe',
    # but the basic idea is the same.
    #
    # The hook program typically does not inherit the environment of
    # its parent process.  For example, a common problem is for the
    # PATH environment variable to not be set to its usual value, so
    # that subprograms fail to launch unless invoked via absolute path.
    # If you're having unexpected problems with a hook program, the
    # culprit may be unusual (or missing) environment variables.
    # 
    # Here is an example hook script, for a Unix /bin/sh interpreter.
    # For more examples and pre-written hooks, see those in
    # the Subversion repository at
    # http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
    # http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
    
    
    REPOS="$1"
    TXN="$2"
    
    # Make sure that the log message contains some text.
    SVNLOOK=/usr/bin/svnlook
    
    LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
    if [ "$LOGMSG" -lt 5 ];
    then
      echo -e "注释信息不能为空且不少于5个字!" 1>&2
      exit 1
    fi
    exit 0

    4、无需重启svn服务,直接测试。效果如下

    参考文章:http://www.linuxyan.com/linux-service/229.html

  • 相关阅读:
    CI框架学习——基本的用法(一)
    android测试之——Instrumentation(一)
    android测试之——mokeyrunner上(二)
    两台linux机器时间同步
    linux常用命令
    hdu2609(最小表示法)
    poj1509(环形字符串求最小字典序)
    最小最大表示法,求环形字符串的最小最大字典树(模板)
    区间dp总结篇
    dp之最长递增、公共子序列总结
  • 原文地址:https://www.cnblogs.com/EvanHe/p/svn.html
Copyright © 2011-2022 走看看