通过SVN钩子限制提交的条件
1. "钩子"是什么?
钩子, 通常意义上讲就是可以钩到某个事物上, 而这里的钩子其实就是将钩子钩到我们正在执行的操作上(比如提交版本这件事, 检出等操作), 和事件监听一样, 只要你做了什么, 我就相应的执行操作
2. 通过钩子对SVN版本提交限制日志至少要6个字符
-
找到项目的目录, 目录下会有hooks目录, hoosk目录下就是钩子发生, svn默认调用的脚本文件, (当然也可以通过可视化工具自己配置对应的事件指定对应的脚本文件, 但是这里用默认的来举例)
tmpl文件是用来展示实例的, windows默认调用.bat文件, linux默认调用.sh文件, pre-commit是提交前执行的钩子, post-commit是提交完成后要执行的钩子, start-commit即提交未完成之前执行的钩子. 这有咩有像面向切面编程的AOP呢?
-
编辑pre-commit.bat文件
@echo off :: :: Stops commits that have empty log messages. :: @echo off set svnlook="D:/Program Files (x86)/VisualSVN Server/bin/svnlook.exe" setlocal rem Subversion sends through the path to the repository and transaction id set REPOS=%1 set TXN=%2 rem check for an empty log message %svnlook% log %REPOS% -t %TXN% | findstr ...... > nul if %errorlevel% gtr 0 (goto err) else exit 0 :err echo. 1>&2 echo you have to type at least 6 words to commit! 1>&2 exit 1
-
测试
3. 其实SVN的钩子还可限制上传文件的扩展名, 等等, 只要是可以拿到的属性, 都可做出相应的判断的, 其他的还需要对 windows脚本和shell脚本进一步的熟悉才行, 所以下次准备看一下关于脚本的学习喽
PS: 最近一直在找一个好的随记编辑工具, 最后发现markdown语法确实很不错, 之后又发现了MarkdownPad2这个软件, 简直顺手到爆炸, 轻松搞定简单的排盘布局: 效果如下