1、背景
svn在许多互联网大厂中,作为版本控制的系统(当然还有git),但是总有一批人提交的时候不写提交描述,这样就得去查看他提交的内容才能知道他做了什么修改,这时候svnhook就发挥出他的作用了!
2、什么是SVN hook
在我们对svn进行操作(提交前后、锁前后)的一个回调,比如: 1、我们可以在提交之前做一个提交描述的检测,用来限制提交,提高整个工程质量 2、在提交完之后做一些批处理、自动化处理,减少人力占用 ……
3、SVN hook 有哪些
首先要将SVN分为服务端和客户端:
在SVN服务端,有这些钩子 在SVN客户端,有这些钩子
4、如何设定hook
服务端:
在每一个仓库里面,都有一个 hook的文件夹,找到你要设定hook仓库所对应的文件夹,如下图
打开后可见如下 将对应的hook后缀改为.bat,并更改内容即可
客户端:
5、如何使用规范提交
思路:
1、因为是多个人同时对一个仓库进行操作,因此我们的hook应该设在服务端 2、必须在提交前检测,因此我们选择pre-commit
代码:
@echo off
setlocal
set REPOS=%1
set TXN=%2
rem 找到SVNServer下的svnlook.exe文件
set SVNLOOK="C:\Program Files\TortoiseSVN\bin\svnlook.exe"
rem 检查备注字符不能为空
%SVNLOOK% log %REPOS% -t %TXN% | findstr "." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo log don't empty, your log should be longger >&2
exit 1
提交测试:
1、当备注为空
提交不上去!
2、当备注不为空
提交成功
|