SVN提交日志自动审核(Pre-commit hook使用)

目录

环境

客户端修改

服务器修改


环境

系统:windows server 2012 R2

软件:VisualSVN Server Manager 3.9.1

前言

在项目开发中,只是口头上或者通过文档要求每个人仔细认真填写SVN提交日志以达到规范目的是不太靠谱的,通过设置和限制为开发人员提供方便并加以控制是必要的

客户端修改

1.在SVN项目根目录右键打开Properties

2.点击右下角New新建一条配置选项

3.在上方Property Name下拉菜单里面选择 tsvn:logtemplate,以我自己的项目提交模板为例,输入日志提交模板

【提交类型】: 功能制作/BUG/代码整理/解决编译错误/资源添加/资源修改/目录调整
【修改内容】: 
【禅道链接】: 

4.一路确定保存,点击提交,Message窗口就会自动出现模板设置的内容,把文件夹设置上传,其他人更新后点击提交时就都会弹出模板内容,这样便可以更加方便的修改

 

服务器修改

1.打开SVN Server Manager,选择想要增加审核机制的项目目录,右键选择Properties,切到Hooks窗口,双击Pre-commit hook打开编辑hook

2.针对开发人员各种不符合规则的行为(如日志无内容、用模板不修改直接提交等),我设置的hook内容如下

setlocal
set SVN_BINDIR="E:\Program Files\VisualSVN Server"
set REPOS=%1
set TXN=%2

rem 检查提交日志格式是否包含【提交类型】和【修改内容】
%SVN_BINDIR%\bin\svnlook log "%REPOS%" -t "%TXN%"|findstr "【提交类型】" > nul
if %errorlevel% gtr 0 goto err
%SVN_BINDIR%\bin\svnlook log "%REPOS%" -t "%TXN%"|findstr "【修改内容】" > nul
if %errorlevel% gtr 0 goto err

rem 检查提交日志是否在提交类型中选择了一项或几项,
rem 查找模板中最不可能同时出现的两个相邻的提交类型是否出现
%SVN_BINDIR%\bin\svnlook log "%REPOS%" -t "%TXN%"|findstr "解决编译错误/资源添加" > nul
if %errorlevel% equ 0 goto err1

rem 检查是否【修改内容】未填写
rem 符号解释:"."匹配一个任意字符(因我书写的模板中:后面有一个空格) "$"匹配行结束
%SVN_BINDIR%\bin\svnlook log "%REPOS%" -t "%TXN%"|findstr "【修改内容】:.$" > nul
if %errorlevel% equ 0 goto err1

exit 0
:err
echo 提交失败!必须包含【提交类型】和【修改内容】 1>&2
echo 【提交类型】必须从给定类型中选择一项 1>&2
echo 【修改内容】不能为空 1>&2
echo Commit Failed! Commit content length less than 4 characters 1>&2
exit 1


:err1
echo 提交失败!请认真填写提交内容! 1>&2
echo 【提交类型】必须从给定类型中选择一项 1>&2
echo 【修改内容】不能为空 1>&2
echo Commit Failed! Commit content length less than 4 characters 1>&2
exit 1

这样便可以在开发人员提交不符合规则的日志内容时弹出提交失败窗口,让开发人员重新修改日志内容

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值