zoukankan      html  css  js  c++  java
  • 使用 svn pre-commit 钩子规范代码提交日志

    目的

    1. 规范 svn 提交日志格式,让每一次提交更慎重;
    2. 拒绝不填写日志的提交;
    3. 便于日后追溯;

    怎么做

    一个新建好的 svn 仓库目录如下,可以看到有一个 hooks 的目录,里面存放了一些 svn 默认的钩子脚本,这次我们需要关注的就是 pre-commit 钩子。

    1. 在 hooks 目录下新建 pre-commit.bat 脚本,内容如下:

      @echo off
      setlocal
      set REPOS=%1
      set TXN=%2
      set SVNLOOK="C:Program FilesVisualSVN Serverin"
      set PYTHON="C:Program FilesPython35"
      
      
      %SVNLOOK%svnlook.exe log "%REPOS%" -t "%TXN%" | %PYTHON%python.exe C:VisualSVNcheck.py > nul
      
      
      if %errorlevel% gtr 0 goto err
      exit 0
      
      :err
      echo "Message 格式错误,正确格式:Bug|Task #1000 修改描述" 1>&2
      exit 1
      
    2. 新建 check.py 文件,内容如下:

      import re
      import sys
      
      message = sys.stdin.read()
      restr = r'^(Bug|Task)s#d+sw+'
      
      if re.match(restr, message) != None:    
          exit(0)
      else:
          exit(1)
      

    实现原理其实很简单,调用 svnlook 指令获取本次提交的日志内容,判断是否符合指定格式要求就好了,但是因为 bat 自带的 findstr 对正则支持不友好,所以这里又写了一个 python 的脚本来对格式进行验证。然后尝试不写日志提交,就会给出如下提示

    欢迎交流,QQ: 997494167
  • 相关阅读:
    读书笔记
    JavaScript
    Vue
    读书笔记
    Python
    Python
    概率论07 联合分布
    概率论06 连续分布
    概率论05 离散分布
    概率论04 随机变量
  • 原文地址:https://www.cnblogs.com/olivers/p/13645749.html
Copyright © 2011-2022 走看看